首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个C++基础有关问题的

2012-10-19 
一个C++基础问题的求助C/C++ codeclass B{private:voidPrivateFunc(){coutBPrivateFuncendl}publi

一个C++基础问题的求助

C/C++ code
class B{private:    void  PrivateFunc(){cout<<"BPrivateFunc"<<endl;};public:    void PublicFunc(){cout<<"BPublicFunc"<<endl;}};class A{private:    void  PrivateFunc(){cout<<"APrivateFunc"<<endl;};public:    void PublicFunc(){cout<<"PublicFunc"<<endl;}    void additionalFunction(A a, B b)    {        a.PrivateFunc();        a.PublicFunc();        b.PublicFunc();    }};


我怎么也想不明白,additionalFunction函数中为什么可以使用a.PrivateFunc()?


[解决办法]
但是不能用b.PrivateFunc()呀。
也就是说,它只是对其他类保密,不对自家人保密,否则我们如何访问它呢?
[解决办法]
类成员的访问权限是建立在类上而不是建立在对象上,这点的确很容易让人迷惑
同一个类的不同对象彼此之间可以任意访问,想不明白就记住吧
[解决办法]
类的私有成员变量和成员函数,只能被类本身访问,不能被实例化对象访问。私有成员需要通过公共接口或者友元进行访问。
[解决办法]
Class A 中的函数当然可以访问自己的成员函数,无论是公有的还是私有的!
但是Class A中的函数是不能访问Class B中的私有函数,比如b.PrivateFunc()就不能被访问!
若要Class A中的函数去访问Class B中的私有函数,吧Class A 设为Class B的友元即可。
[解决办法]
探讨
类的私有成员变量和成员函数,只能被类本身访问,不能被实例化对象访问。私有成员需要通过公共接口或者友元进行访问。

[解决办法]
你的手拿你自己的钱不算偷吧
[解决办法]
private member对于mem-function是public的,对外部是private的。

热点排行