No.4ベストアンサー
- 回答日時:
クラスとインスタンスをごちゃまぜにしていませんか?
Aのクラスの実体とBのクラスの実体は別々であるにもかかわらず、
Aで設定したものがBにも設定されることを期待しているように見えます。
参考URL:http://e-words.jp/w/E382A4E383B3E382B9E382BFE383 …
回答ありがとうございます。あれからいろいろ勉強して、なんとなく意味が分かってきました。まだ解決していませんが、新たな疑問が出そうなので、改めて質問させていただきます。
No.3
- 回答日時:
クラスAのインスタンス作ってsetvalueして、それと別にクラスBのインスタンス作って表示してる
って線が濃厚そうですが
確かにこんなコードでも警告もエラーも出ませんが
#include <stdio.h>
class A {
public:
int value;
void setvalue (int a) {value = a;}
};
class B : public A {
public:
void print (void) {printf ("%d\n", value);}
};
int main (void)
{
A a;
a.setvalue (100);
B b;
b.print ();
}
この回答への補足
まさしくこれが原因のようです。みなさま丁寧な回答ありがとうございます。人と壁との衝突判定をするつもりでした。自分が書いたコードでは人が壁の位置を知ろうとしたのが間違いの原因でした。
次に、「物理」という名の、「人と壁を継承したクラス」を作ってみました。そのクラスは壁や人の位置などを知る権利があるはずなのですが、これでも「空っぽの変数を表示したときの巨大な数値」になってしまいます。衝突判定をフレンド関数に指定したり、物理クラスをフレンドにしたりと、いろいろ試しましたが目標に到達できません。
検索キーワードでもよいので、アドバイスがあればよろしくお願いします。
No.2
- 回答日時:
こんにちは。
イニシャライザでメンバ変数の初期化をし忘れているのではないでしょうか。
struct A
{
//イニシャライザで初期化する
//A() : m_value(0)←此れがイニシャライザ{}
//此方の方が良いかもしれない
explicit A(int value = 0) : m_value(value){}
//此れが仮想関数。クラスBで更に上書きする
virtual void setvalue(int value){ m_value = value; }
//此れがあればpublicを回避出来る
int getvalue() const { return m_value; }
private:
int m_value;//此れがメンバ変数
};
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- Excel(エクセル) 【VBA】PDF作成のコードでコンパイルエラーになってしまいます。 10 2023/02/07 19:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラス間でのデータ参照
-
関数内の変数に<summary>コメン...
-
Java リフレクションについて
-
範囲外の数値を代入したらエラ...
-
visual studioのデザイナ画面で...
-
C++でfriendクラスにしているの...
-
c++,ある関数のクラスから別の...
-
JSPでbeanプロパティ(配列)を...
-
アップキャスト、ダウンキャス...
-
explicitの定義は?
-
ひとつのファイルにクラスは1つ?
-
Java
-
C#で処理中の状況をStatusLabel...
-
VisualC++でクラスのヘッダーフ...
-
構造 他のクラスの構造体を別...
-
親クラスから子クラスへアクセス。
-
プログラムの変数名にするとど...
-
スーパークラスのコンストラク...
-
継承したクラス側のクラス名の取得
-
javaの配列について質問です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
C#にて別クラスの関数を使いたい
-
c++,ある関数のクラスから別の...
-
親クラスから子クラスへアクセス。
-
C#でほかのファイルにある自作...
-
クラス間でのデータ参照
-
構造 他のクラスの構造体を別...
-
範囲外の数値を代入したらエラ...
-
ひとつのファイルにクラスは1つ?
-
C++でfriendクラスにしているの...
-
Java リフレクションについて
-
継承したクラス側のクラス名の取得
-
C# インターフェイスの実装
-
java-別クラスの変数の使い方を...
-
C#のクラスライブラリでメッセ...
-
visual studioのデザイナ画面で...
-
C# log4netの使い方
-
a href="..." とServlet
-
アップキャスト、ダウンキャス...
-
オブジェクトのデータをもとにX...
おすすめ情報