可能重复:
为什么允许通过基类的指针调用派生类的私有虚方法?
最近,我遇到了一个奇怪的问题,请参考以下代码:
#include <iostream>
using namespace std;
class A
{
public:
virtual void disp() {
cout<<"A disp"<<endl;
}
};
class B : public A
{
private:
void disp() {
cout<<"B disp"<<endl;
}
};
int main()
{
A a;
a.disp();
A *b = new B();
b->disp();
}
Run Code Online (Sandbox Code Playgroud)
输出是:
A disp
B disp
Run Code Online (Sandbox Code Playgroud)
我想知道为什么指针b可以访问disp()?这是私人的!不是吗?
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |