- ベストアンサー
C++ Builderでのpublic変数の扱いについて
class TForm1 { ・・・ public: int i; ・・・ } のように宣言した変数iは他の関数から どのように参照したらいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
C++ Builder では、TForm1 はちょっと特殊なクラスですから。 さて、「他の関数から」ということですが、どこにある関数かで話は違ってきます。 1.TFrom1 のメンバ関数 これは、TForm1::なんとか() の形をしています。 この関数からは、単に、i で参照できます。 2.TForm1 に関連する unit.cpp の中の関数 Form の実体(TForm1 のインスタンス)は、Form1 というものです。 これを経由して、 From1->i で参照できます。 3.他のファイルの中にある関数から そのファイルに、 #include "Unit1.h" を定義します。 この、Unit1.h は、TForm1 を定義しているヘッダファイルの名前になります。 この inculude を定義した上で、Form1->i で参照できます。 いずれにしても、TForm1 の中の Public なメンバ変数は、メインフォームの中で共有される変数になります。 この意味から、i のような単純な名前はあまり好ましくありません。 また、通常であれば、メインフォームの情報を参照する関数は、TForm1 のメンバ関数でであるべきです。そうすれば、参照する変数が Public: である必要はありません。 既に指摘があるように、クラス内にある Public: なメンバ変数は、取扱注意です。
その他の回答 (2)
- episteme_at_goo
- ベストアンサー率25% (9/36)
TForm form; int got_value = form.i; もしくは: TForm* pform = ...; int get_value = pform->i; クラスにpublicなメンバ変数を持たせることは 「決して」お勧めいたしませんが。
お礼
ご回答ありがとうございます。 参考にさせて頂きます。 >>クラスにpublicなメンバ変数を持たせることは 「決して」お勧めいたしませんが。 注意点も教えていただきありがとうございます。
- nerosuke
- ベストアンサー率33% (39/115)
>C++ Builderでのpublic変数の扱いについて ビルダーは関係ないですよ。 C++の文法です。 >他の関数からどのように参照したらいいのでしょうか? メンバ関数の事かな? どの関数? C++は理解できているのでしょうか? ビルダーがいかにRADツールとは言え、C++の知識が全く無ければ、 使うのはきついですよ。 とはいえ、VC++に比べればまったくもって容易に開発ができますので、 ある程度 C++の知識を得ましょう。
お礼
ご回答ありがとうございます。 一から勉強しなおします。
お礼
ご回答ありがとうございます。 非常に丁寧な回答でわかりやすかったです。