一つのオブジェクトを複数ファイルで共有するには?


ひよっこ  2004-06-11 02:36:55  No: 53774

グローバルなオブジェクトを利用したいのですが、あるファイル内で宣言しても、他のファイルでは利用できませんでした。
例えば、Test.cpp内でオブジェクト宣言した場合、Test.cpp内ではどこでも使用できるのですが、Test2.cppでは使用できませんでした。
アプリのどこからでも参照できるようなオブジェクトを作るにはどうすればいいのでしょうか?
オブジェクトのポインタを渡すことができないかとも思ったのですが、こちらも方法が分かりません。。(汗)
いかにも初心者な質問で申し訳ありませんが、ご教授お願いします。


シャノン  2004-06-11 02:51:07  No: 53775

あるファイルで

int a = 0;

とか宣言したら、他のファイルでは

extern int a;

って宣言すれば、別のファイルでも a が使えます。


ひよっこ  2004-06-11 21:44:37  No: 53776

シャノンさん、お返事ありがとうございます。

いまいち上手くいかないので、もう少し教えて頂けないでしょうか・・。
OSはXP、VC++.NETでMFCアプリケーションを作っています。
単純に、変数であれば「extern」で外部参照できるのですが、クラスのオブジェクトにすると上手くいきません。。
あるクラス内でモードレスウィンドウを作成(Create)し、それを別ファイルのクラス内で表示したい(ShowWindow)のですが、エラーが出てしまいます。
何かいい方法はないでしょうか・・。(汗)


YuO  2004-06-12 05:45:13  No: 53777

> 単純に、変数であれば「extern」で外部参照できるのですが、クラスのオブジェクトにすると上手くいきません。。

クラスだろうが組み込み型だろうが,externを正しく使えば問題なく参照できます。

> あるクラス内でモードレスウィンドウを作成(Create)し、それを別ファイルのクラス内で表示したい(ShowWindow)のですが、エラーが出てしまいます。

エラーの内容は何ですか?
エラーが出たこと自体は重要な情報ではありません。
エラーの内容こそが解決に至るための重要な情報です。

> 何かいい方法はないでしょうか・・。(汗)

そもそもグローバルである必要はあるのですか?
ModelとViewをちゃんと分けておけば,Modelを引数で引き渡すなどの方法が採れると思いますが。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加