一个C++基础有关问题的
一个C++基础问题的求助C/C++ codeclass B{private:voidPrivateFunc(){coutBPrivateFuncendl}publi
一个C++基础问题的求助
C/C++ codeclass 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的。