読者です 読者をやめる 読者になる 読者になる

hayateasdf's blog

C#,javascript,pythonなどいろいろ。広く浅く

フレンドクラス

フレンドクラスは、フレンドと して指定した他のクラスのメンバを、

アクセス指定子とは無関係にアクセスできるようにします

 

class Friend;

 

class Test{

friend class Friend;

Test(int num) : num_(num){ }

private:

int num_;

}

class CTestFriend

{

public:

// フレンドである CTestクラスの privateメンバにアクセス

int GetFriendNum(CTest& obj) const { return obj.num_; }

};

 

注意点

・「自身のクラスのメンバに自由にアクセスできるのは、このクラスである」という宣言になるので、アクセスされる側(Test)にfreind宣言が含まれます。

 

・クラスの前方宣言を行う。実際のクラス定義より以前に記述し、このような名前のクラスがどこかで定義されているということをコンパイラに知らせる。