急!!!
#include<iostream>using namespace std;
class A{
public:
virtual void a(){cout<<"A"<<endl;}
};
class B:public A{
private:
virtual void a(){cout<<"B"<<endl;}
};
int main()
{
A *p;
p=new B;
p->a();
return 0;
}//输出为B
这个程序怎么可以运行,怎么没出错呢?为什么可以访问私有成员函数呢?
LZ看的啥书?如果是国产著作,建议你丢了. [quote][bo][un]中学者[/un] 在 2008-6-24 15:29 的发言:[/bo]
派生类的virtual接口与基类权限一致.... - -!!
LZ看的啥书?如果是国产著作,建议你丢了. [/quote]
不管什么书,但是我确实运行了那个程序,没有一点问题的,现在就是那个程序为什么不会出错 - -.我不是已经告诉你为什么了麽?看不明白? 如楼上所说,覆盖的函数不能改变访问属性 不好意思啊,没看清楚
现在好像看明白啦
谢了啊 看了下书:我觉得问题是派生类和基类的特殊关系!!
建议你取看看就可以得到结果。
页:
[1]
