クラスのインスタンス名をクラス内で取得できますか?
今VC++6.0を使っています。例として下記のクラスのコンストラクタで
CTest::CTest() { TRACE("%s",typeid(this).name()); }
としておいて、
別なクラスで CTest testInst; を生成すると
デバッグエリアに 「class CTest *」 と表示することはできました。
これが出来るのなら、インスタンス名 testInst をCTestクラスの内部から
取得することは出来ないのかと思ったのですが、
取得することは可能なのでしょうか?
No.3ベストアンサー
- 回答日時:
オブジェクトの定義時に、名前をコンストラクタに渡すようなマクロでも作れば実現できなくもないのかもしれませんが、一般的には無理です。
また、そもそも名前のないオブジェクト、例えば、newで割り付けたオブエジェクトや一時オブジェクトはどうするのでしょうか?
名前をコンストラクタに渡すようなマクロ…試しに作ってみたのですが、
関数内でクラスの変数を生成したときは、いいのですが、
別クラスのメンバ変数として宣言した時はだめですね。
一般的には無理ということがわかりました。
ご回答有難うございました。
因みにこんな形で書いてみました
変数名を取るコンストラクタ
CTest::CTest(CString thisName):m_ThisName(thisName){}
を作って
#define CLASS_DISP_NAME(x,y) x y(#y);
でマクロを作って
CLASS_DISP_NAME(CTest,test2);
で呼出してみました。
No.2
- 回答日時:
この例において、testInstはインスタンス名ではなくて変数名。
あるインスタンスがどの変数から指されているかをインスタンス側で知ることはできません。
同じ一つのインスタンスが複数の変数から指されていることもあるわけだし。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- 中学校 中3受験生女子です 夏休みに入って今まではみんな部活があって部活クラスというものに来てたのですが最近 4 2022/07/28 22:59
- 英語 英語 別のクラスの友達 英作文で、別のクラスの友達 と表現したいとき、どういう表現ができますか? a 2 2022/05/31 18:28
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
C#でオブジェクトの有無を取得する
-
生成したインスタンスを削除す...
-
C#「オブジェクト参照が必要で...
-
SerialPort処理でInvokeメソッ...
-
C# インスタンスの破棄
-
PHPExcel使用で2枚目のシートを...
-
ASPX(C#)で別ファイルで自分で...
-
VB6.0で、DLLを動的に参照したい
-
リアルタイム波形表示
-
インスタンスを同じ名前で作成...
-
外部ライブラリの動的参照によ...
-
変数の参照でエラーが出てしま...
-
他のファイルの変数参照
-
javaのクラスの作り方、エラー...
-
VB.NET Form1からForm2を開い...
-
VB.NET Newしたものを変数に代...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
文字列を日付に変換でParseExce...
-
String a = "a"; と String b =...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
SQLを連続発行する時の正しい(?...
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
他のファイルの変数参照
-
C#「オブジェクト参照が必要で...
-
エクセル(複数インスタンス)...
-
VB6.0で、DLLを動的に参照したい
おすすめ情報