返回信息流class A
{
public:
A(){}
virtual ~A(){}
void out(){fun();}
private:
virtual void fun(){cout<<"A"<<endl;}
};
class B:public A
{
public:
B(){}
private:
void fun(){cout<<"B"<<endl;}
};
运行
A *p=new B;
p->out();
为什么基类的p可以调用派生类private成员函数呢?
按照名称查找规则,p传入out函数调用fun,根据p的静态类型在A中查找fun,找到之后发现是virtual,即根据p的动态类型B找fun,我的疑问就是为什么这之后就可以利用基类p调用派生类private virtual呢?
谢谢
这是一条镜像帖。来源:北邮人论坛 / cpp / #31248同步于 2009/11/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
private virtual问题
leelgl
2009/11/13镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。