電子書籍の厳選無料作品が豊富!

class TForm1
{
・・・
public:
int i;
  ・・・
}
のように宣言した変数iは他の関数から
どのように参照したらいいのでしょうか?

A 回答 (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: なメンバ変数は、取扱注意です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
非常に丁寧な回答でわかりやすかったです。

お礼日時:2006/12/23 09:06

TForm form;


int got_value = form.i;

もしくは:

TForm* pform = ...;
int get_value = pform->i;

クラスにpublicなメンバ変数を持たせることは
「決して」お勧めいたしませんが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考にさせて頂きます。

>>クラスにpublicなメンバ変数を持たせることは
「決して」お勧めいたしませんが。

注意点も教えていただきありがとうございます。

お礼日時:2006/12/23 09:05

>C++ Builderでのpublic変数の扱いについて


ビルダーは関係ないですよ。
C++の文法です。

>他の関数からどのように参照したらいいのでしょうか?
メンバ関数の事かな? どの関数? 

C++は理解できているのでしょうか?
ビルダーがいかにRADツールとは言え、C++の知識が全く無ければ、
使うのはきついですよ。

とはいえ、VC++に比べればまったくもって容易に開発ができますので、
ある程度 C++の知識を得ましょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
一から勉強しなおします。

お礼日時:2006/12/23 09:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!