Re: Вызов виртуальной функции с параметром со знач-м, заданным по-умолчанию?
От: vopl Россия  
Дата: 02.03.21 19:36
Оценка:
Здравствуйте, centos, Вы писали:


C>
C>class A
C>{
C>public:
C>    A()
C>    {
C>        f();
C>    }
C>    virtual void f(int i = 10)
C>    {
C>        std::cout << i << '\n';
C>    }
C>};

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

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


C>Вывод:

C>10
C>B::f 25
C>B::f 10
C>Объясните, почему вывод 2-й и 3-й строк различается?
C>Последний вопрос: почему в 3-й строчке была вызвана B::f со значением 10?

Тут похожий вопрос http://rsdn.org/forum/cpp/7915458.1
Автор: Marty
Дата: 30.12.20
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.