問題を具体化するコードは次のとおりです。
class Apples {
Apples() {
color = 5;
}
int color;
};
Apples jonathan;
class Fruit {
Fruit() {
type = jonathan.color;
}
int type;
};
与えられたエラー: 'jonathan' が宣言されていません (最初にこの関数を使用してください)。
C ++
アップルジョナサンで。main内で宣言されています
int main()
{
Apples jonathan;
}
現在、クラス内でオブジェクトのメソッド (jonathan.color) を呼び出していますが、これは不可能です。
投稿した方法では、そのエラーは発生しません。それらが異なるファイルにある場合は、必要な部分がヘッダー ファイルにあることを確認し、必要なヘッダーを (#include で) インクルードするだけです。
投稿したコードは、コンパイル時エラー (コンストラクターが非公開など) を引き起こします。したがって、これは実際のコードではありません。
ただし、グローバル変数を使用することは悪い習慣と見なされており、代わりにメンバー変数を使用し、必要に応じて参照を渡す必要があります。
Apple()
コンストラクターはプライベートであることに注意してください。コンストラクタも同様ですFruit()
。