如果子类和基类的访问控制不一样,或者默认参数值不一样,那么对他的虚函数的调用会出现什么结果呢
class B
{
public:
virtual void show( int i = 10 ){cout<<i<<endl;}
};
class D:public B
{
public:
virtual void show( int i = 100 ){cout<<i<<endl;}
};
int main(int argc, char* argv[])
{
B* bb = new B();
bb->show();
B* bd = new D();
bd->show();
D* d = new D();
d->show();
}
访问控制受指针类型的控制,并且默认参数值也受指针控制,如果积累的访问控制为public则基类指针对相关函数的访问合法,否则非法..
本文探讨了C++中虚函数在不同访问控制及默认参数值下的行为表现,通过具体实例展示了基类指针调用派生类虚函数时的特性。
887

被折叠的 条评论
为什么被折叠?



