No.1ベストアンサー
- 回答日時:
単純な回答としては、親クラスと子クラスでは同じ変数名でも
変数が格納されている場所が違うということです。
class 親クラス {
private(protected?) int a;
public void setA(int);
public int getA();
....
}
class 子クラス pubic 親クラス {
....
}
とした場合(細かい文法の誤りはご容赦を)、
コード内で
class 親クラス A;
A.メンバ関数() {
class 子クラス B(); //コンストラクタ
};
というような場合、親クラスAのインスタンスと子クラスBの
インスタンスが別々に生成されます。子クラスから見たメンバaは、
親クラスのそれとは異なるのです。
解決策のひとつとして、子クラスの定義に以下を追加することですか。
子クラス(親クラス*); //コンストラクタ
private(protected) 親クラス* ap;
子クラスに生成した親クラスへのポインタを持たせる方法です。
親クラスAから
子クラス B(*A); //とし、
B.ap->setA(num);
とするとうまくいくと思います。わかりにくい記述で済みません。
継承すればインスタンスは同じになるのかと思ったのですが
甘かったようで、すみませんでした。
丁寧に説明して下さって有難うございます。
仰って下さった事をまだ理解できないという事は、
相当基礎がなってないようなので
早く理解できるよう勉強し直してきます。
有難う御座いました。
No.2
- 回答日時:
>子クラスから親クラスのメンバ変数を変更するにはどうすれば良いのでしょうか?
結論から言うと今の使い方では出来ません。
たぶんクラスの継承をちゃんと理解されてないんだと思いますが、インスタンスが別の存在である親クラスAと子クラスBの変数は別のメモリ空間に属していますので参照も変更も出来ませんが、子クラスのインスタンス上で親クラスのメンバ関数は子クラスの変更した値を参照することは出来ます。
そもそも子クラスは親のクラスの機能を全て内包しています。なので、親のクラスを呼び出す理由も意味もありませんし、親クラス内から子クラスのインスタンスを作って呼び出すなどエラーは出ないでしょうがオブジェクト志向の流儀に反しています。頭の中で関数とクラスがごっちゃになっているのでは?
実際に何がしたいかによって答えが変わりますが、少なくとも親クラスから子クラスを呼び出すのは止めた方がよいです。
初めてで、継承すればインタンスは同じと思ってしまったのですが違ったのですね。
うまく理解できませんでしたが、とてもよろしくないやり方をやっているのですね。
別の問題に気を取られて軽率に使ってみたのが間違いだったようです。
もっと勉強しなおしてきます。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どこからも呼ばれていない無意...
-
A・B・Cクラスとは?
-
java eclipse 型に解決できません
-
配列の重複する値とその個数を...
-
同一パッケージにあるクラスが...
-
dllと同じプロジェクトにする方法
-
命名規約は連番でいいのか?
-
main()を持つクラスが2つ以上...
-
修学旅行での演芸大会の出し物...
-
UMLのクラス図はmain()も含むん...
-
コンボボックスのマウスホイー...
-
ATLとMFCの違いは何でしょうか?
-
VBAもしくはVB6:クラスの中で...
-
ネスカフェ エクセラ と UCCク...
-
tomcat上でのpropertiesファイ...
-
定数はどこでまとめますか?
-
1 つのヘッダファイルに複数の...
-
ヤマハのジュニア科に通っています
-
JAVAで他ライブラリのクラスを...
-
eclipse でクラスに色
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
どこからも呼ばれていない無意...
-
main()を持つクラスが2つ以上...
-
UMLのクラス図はmain()も含むん...
-
A・B・Cクラスとは?
-
同じクラスにならない確率を教...
-
eclipse でクラスに色
-
IPアドレスの3バイト目の呼び方
-
修学旅行での演芸大会の出し物...
-
「天声人語」をインターネット...
-
共通で使う関数を集めたクラス...
-
3年間同じクラスになる確率
-
dllと同じプロジェクトにする方法
-
同一パッケージにあるクラスが...
-
重複エラーを解決するには
-
ネスカフェ エクセラ と UCCク...
-
IPアドレスのクラスAを取得して...
-
1 つのヘッダファイルに複数の...
-
複数のクラスで共通した関数を...
おすすめ情報