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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の重複する値とその個数を...
-
数学の計算問題。 3年間同じク...
-
3年間同じクラスになる確率
-
EclipseでJSPのコンパイルエラー
-
ネスカフェ エクセラ と UCCク...
-
dllと同じプロジェクトにする方法
-
[C++/CLI]可変個引数について
-
main()を持つクラスが2つ以上...
-
共通で使う関数を集めたクラス...
-
java eclipse 型に解決できません
-
クラスのプロパティに構造体を...
-
「天声人語」をインターネット...
-
IPアドレスの3バイト目の呼び方
-
http://s.kakaku.com/item/K000...
-
A・B・Cクラスとは?
-
複数のクラスで共通した関数を...
-
同じクラスにならない確率を教...
-
IPアドレスのクラスAを取得して...
-
クラス名の「~Factory」って何?
-
クラスについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の重複する値とその個数を...
-
どこからも呼ばれていない無意...
-
java eclipse 型に解決できません
-
「天声人語」をインターネット...
-
main()を持つクラスが2つ以上...
-
1 つのヘッダファイルに複数の...
-
IPアドレスのクラスAを取得して...
-
同一パッケージにあるクラスが...
-
同じクラスにならない確率を教...
-
重複エラーを解決するには
-
共通で使う関数を集めたクラス...
-
3年間同じクラスになる確率
-
複数のクラスで共通した関数を...
-
同じパッケージ、クラス名が含...
-
A・B・Cクラスとは?
-
自作のクラスファイルがインポ...
-
ATLとMFCの違いは何でしょうか?
-
eclipse でクラスに色
-
コンボボックスのマウスホイー...
-
UMLのクラス図はmain()も含むん...
おすすめ情報