![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?e8efa67)
No.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: なメンバ変数は、取扱注意です。
No.2
- 回答日時:
TForm form;
int got_value = form.i;
もしくは:
TForm* pform = ...;
int get_value = pform->i;
クラスにpublicなメンバ変数を持たせることは
「決して」お勧めいたしませんが。
この回答へのお礼
お礼日時:2006/12/23 09:05
ご回答ありがとうございます。
参考にさせて頂きます。
>>クラスにpublicなメンバ変数を持たせることは
「決して」お勧めいたしませんが。
注意点も教えていただきありがとうございます。
No.1
- 回答日時:
>C++ Builderでのpublic変数の扱いについて
ビルダーは関係ないですよ。
C++の文法です。
>他の関数からどのように参照したらいいのでしょうか?
メンバ関数の事かな? どの関数?
C++は理解できているのでしょうか?
ビルダーがいかにRADツールとは言え、C++の知識が全く無ければ、
使うのはきついですよ。
とはいえ、VC++に比べればまったくもって容易に開発ができますので、
ある程度 C++の知識を得ましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
C++でboolにintの値を代入する...
-
分割コンパイル時に構造体....
-
C言語での方向キー入力判定
-
main.c:7:43: warning: implici...
-
関数の実体定義にヘッダファイ...
-
visualstudio C# テキストボッ...
-
構造体の宣言でエラーが出ます。
-
intとINTの違いは?
-
【#define】 defineで定義した...
-
C++の(左辺値)参照を参照渡し
-
コンパイルエラー
-
構造体の要素すべてに対する四...
-
2重定義って??
-
C言語でのフィボナッチ数列の表示
-
DLLでLIBファイルが作成されない
-
変数の型を定義しなかった場合...
-
staticで初期化した変数(?)を使...
-
C++の規格
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
2重定義って??
-
visualstudio C# テキストボッ...
-
C++のfor文について
-
構造体の要素すべてに対する四...
-
typedef enumの使い方を教えて...
-
変数の型を定義しなかった場合...
-
ハンドルされていない例外が発...
-
関数の実体定義にヘッダファイ...
-
intとINTの違いは?
-
【#define】 defineで定義した...
-
C++でboolにintの値を代入する...
-
構造体の宣言でエラーが出ます。
-
main.c:7:43: warning: implici...
-
プログラムの中で別のmainを呼...
-
void func( void )について
-
エラー「invalid conversion fr...
-
C言語 宣言した変数になにも代...
-
0除算を判定したい
おすすめ情報