下列代码之后的结果为()?

xiaoxiao2021-02-28  90

下列代码之后的结果为()?

答案:adcee

解析:

1.b.f(); 基类对象直接调用基类的f()函数,输出a 2.p->f(); 派生类对象赋给基类的指针,由于f()在基类中是虚函数,根据基类指针指向的对象进行调用,因此调用派生类的int f()输出d 3.p->g();基类中g()不是虚函数,调用基类的g() 4.p_const->f();常对象,又由于基类中声明为虚,同理用派生类中的函数 5.同理

只有在通过基类指针(或引用)间接指向派生类子类型时多态性才会起作用。派生类的指针只调用自己的函数!基类指针的函数调用如果有virtual则根据多态性调用派生类的函数,如果没有virtual则是正常调用基类的函数。

转载请注明原文地址: https://www.6miu.com/read-83854.html

最新回复(0)