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

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

2012-10-16 
一个C++的基本问题本来在新手区发帖了,但是似乎没有满意的解答,所以特地在这里重发一贴:C/C++ codeclass B

一个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()?

[解决办法]
探讨
本来在新手区发帖了,但是似乎没有满意的解答,所以特地在这里重发一贴:
C/C++ code

class B
{
private:
void PrivateFunc(){cout<<"BPrivateFunc"<<endl;};
public:
void PublicFunc(){cout<<"BPublicFunc"<<endl;}
};

class A
{
privat……

[解决办法]
C/C++ code
additionalFunction函数中为什么可以使用a.PrivateFunc()答:因为你是通过你的public 去访问你的private,这个都是属于A,假如去访问B的private是禁止的!
[解决办法]
这是在类的定义体内所使用私有成员。
在外面就不能使用了吧。友元可以访问
[解决办法]
private: 在本类的作用域可以访问, 而additionalFunction的函数体仍然属于本类的作用域,所以可以访问。
[解决办法]
楼主是不是误认为A a,是类外访问了呢,由于还在类体内,应属于类内访问,所以A类的私有成员函数可以访问,B的私有成员函数不可以访问。

热点排行