ページ 1 / 1
friend指定とメンバメソッド
Posted: 2013年8月03日(土) 21:25
by レフェリア
あるクラスで異なるクラスのメンバメソッドをfriend指定をしようとすると、「存在しないメンバ関数」とエラーが出されました。
メンバメソッド内でのみprivateメンバ変数を使用したいです。
どうすればよいでしょうか?
因みにメンバメソッドはconstで修飾しています。
Re: friend指定とメンバメソッド
Posted: 2013年8月03日(土) 21:35
by h2so5
クラスの宣言の順序に問題があると思います。
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;
}
Re: friend指定とメンバメソッド
Posted: 2013年8月03日(土) 21:53
by レフェリア
h2so5さんありがとうございます。
エラーもなくコンパイルが通りました。