读书人

刚学继承有点乱,该如何处理

发布时间: 2012-02-07 17:45:37 作者: rapoo

刚学继承,有点乱

C/C++ code
class father{private:void FatherInfo(){cout<<"父亲信息"<<endl;}};class son:public father{public:void shellDad(){FatherInfo();}}int main(){son mc;mc.shellDad();}


<C++ primer 第4版>书上是这么说的:“private只能由基类的成员或友元访问” 于是我写了个例子:用子类成员函数访问。结果能访问,这是怎么回事?这不是和书上的矛盾吗?求解....

[解决办法]
敢问楼主编译器。 VS2005 08 10 通不过。
[解决办法]
“private只能由基类的成员或友元访问”这是对的啊!
son mc;
mc.shellDad();
你定义了一个子类的对象, 用子类的对象去调用子类的公有函数,看起来没问题,但是子类的函数调用了父类的私有函数,由于“private只能由基类的成员或友元访问”这就是问题所在。
[解决办法]
我也想知道是什么编译器啊
[解决办法]
2L正解,派生类中一定不能直接访问基类的私有成员,不管是什么继承类型。

读书人网 >C++

热点推荐