子クラスの、親クラスのメンバ参照について
Posted: 2014年3月28日(金) 13:34
子クラスは、その親クラスが持つメンバ変数に自由にアクセスできると聞いたので
下のようなプログラムを書きました。
class Oya
{
private:
int x,y;
class Kodomo
{
public:
Kodomo();
} ;
public:
Oya();
};
Oya::Kodomo::Kodomo()
{
x=0;
y=0;
}
すると、「静的でないメンバー参照は特定のオブジェクトを基準とする相対参照である必要があります」
というメッセージが出てエラーになります。
調べてみると、宣言の前にstaticをつけると静的なメンバー変数というものになるらしいので
static int x,y;
に書き換えてみたら、今度は「外部参照が未解決です」といったエラーがでます。
どうすれば子クラスで、親クラスのメンバ変数の値をいじれるのでしょうか?
下のようなプログラムを書きました。
class Oya
{
private:
int x,y;
class Kodomo
{
public:
Kodomo();
} ;
public:
Oya();
};
Oya::Kodomo::Kodomo()
{
x=0;
y=0;
}
すると、「静的でないメンバー参照は特定のオブジェクトを基準とする相対参照である必要があります」
というメッセージが出てエラーになります。
調べてみると、宣言の前にstaticをつけると静的なメンバー変数というものになるらしいので
static int x,y;
に書き換えてみたら、今度は「外部参照が未解決です」といったエラーがでます。
どうすれば子クラスで、親クラスのメンバ変数の値をいじれるのでしょうか?