如果子类和基类的访问控制不一样,或者默认参数值不一样,那么对他的虚函数的调用会出现什么结果呢
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则基类指针对相关函数的访问合法,否则非法..