Здравствуйте, 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