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

一个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的。