Вызов функции с параметром со знач-м, заданным по-умолчанию.
От: centos Россия  
Дата: 02.03.21 19:12
Оценка:
class A
{
public:
    A()
    {
        f();
    }
    virtual void f(int i = 10)
    {
        std::cout << i << '\n';
    }
};

class B: public A
{
public:
    B()
    {
        f();
    }
    void f(int i = 25)
    {
        std::cout << "B::f " << i << '\n';
    }
};

int main()
{
    B b;
    A& a = b;
    a.f();
}


Вывод:
10
B::f 25
B::f 10
Почему в 3-й строчке была вызвана B::f со значением 10?
Отредактировано 07.03.2021 19:14 centos . Предыдущая версия . Еще …
Отредактировано 02.03.2021 19:36 centos . Предыдущая версия .
vitualfunctions
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.