一个C++基础有关问题的
一个C++基础问题的求助
我怎么也想不明白,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的。
- 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的。