您好,登錄后才能下訂單哦!
#include<iostream>
using namespace std;
class Test2//注意友員類的定義放在Test1的之上?。?/p>
{
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;
}
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。