friend指定とメンバメソッド

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
レフェリア
記事: 33
登録日時: 12年前

friend指定とメンバメソッド

#1

投稿記事 by レフェリア » 12年前

あるクラスで異なるクラスのメンバメソッドをfriend指定をしようとすると、「存在しないメンバ関数」とエラーが出されました。
メンバメソッド内でのみprivateメンバ変数を使用したいです。
どうすればよいでしょうか?
因みにメンバメソッドはconstで修飾しています。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: friend指定とメンバメソッド

#2

投稿記事 by h2so5 » 12年前

クラスの宣言の順序に問題があると思います。
friend指定の前に、対象のメソッドの宣言が必要になります。

コード:

class Foo {
public:
    void func() const;
};
 
class Bar {
    friend void Foo::func() const;
private:
    int member_;
};
 
void Foo::func() const
{
    Bar b;
    b.member_ = 0;
}

レフェリア
記事: 33
登録日時: 12年前

Re: friend指定とメンバメソッド

#3

投稿記事 by レフェリア » 12年前

h2so5さんありがとうございます。
エラーもなくコンパイルが通りました。

閉鎖

“C言語何でも質問掲示板” へ戻る