1. 程式人生 > >C++開發系列-友元函數 友元類

C++開發系列-友元函數 友元類

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++開發系列-友元函數 友元類