C++開發系列-友元函數 友元類
阿新 • • 發佈:2018-06-01
return com 現在 pause 參數 TE ++ 操作 數據
友元函數
默認一個類的私有屬性只能在該類的內部可以直接訪問。友元函數申明在內的內部,實現在類的外部可以直接訪問類的私有屬性。
class A1
{
public:
A1()
{
a1 = 100;
a2 = 200;
}
int getA1()
{
return this->a1;
}
//聲明一個友元函數
friend void setA1(A1 *p, int a1); //這個函數是這個類的好朋友
protected:
private:
int a1;
int a2;
};
void setA1(A1 *p, int a1)
{
p->a1 = a1;
}
void main()
{
A1 mya1;
cout<<mya1.getA1()<<endl;
setA1(&mya1, 300); //通過友元函數 修改A類的私有屬性
cout<<mya1.getA1()<<endl;
system("pause");
}
補充:
- 友元函數聲明語句位置與private、public無關。
- 友元函數通常有個參數為該對象的參數,通過對象參數訪問私有成員屬性數據
友元類
- 若B類是A類的友員類,則B類的所有成員函數都是A類的友員函數
- 友員類通常設計為一種對數據操作或類之間傳遞消息的輔助類
C++開發系列-友元函數 友元類