#include
using namespace std;
class Test2//注意友员类的定义放在Test1的之上!!
{
friend class Test1;//Test1想直接访问Test2的private参数,所以声明为我是你的朋友!
public:
Test2(int a, int b){ x = a; y = b; }
int getx(){
return x;
}
int gety(){
return y;
}
private:
int x, y;
};
class Test1{
public:
Test1(int a, int b) :t(a, b){}
void print(){ cout << "Test2 的对象t的x:" << t.x << endl; }
private:
Test2 t;//因为Test2是Test1的友员
};
class Test3{
public:
friend int getTx(Test3 & t3);//友员函数通过类的指针或引用访问这个类对象的私有成员
private:
//friend int getTx(Test3 & t3);//放在这里完全一样,访问限制符对友员函数不管用
int x;
};
int getTx(Test3 & t3){//友员函数在类外定义!不加static防止给别的混淆
return t3.x;//友员函数可以使用类的所有函数
}
int main(){
Test1 t1(2,5);
t1.print();
system("pause");
return 0;
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页名称:友员函数和友员类-创新互联
文章出自:http://scgulin.cn/article/hspdo.html