Presentation is loading. Please wait.

Presentation is loading. Please wait.

ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.

Similar presentations


Presentation on theme: "ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数."— Presentation transcript:

1 ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数

2 ローカル変数とグローバル変数 ローカル変数 定義された関数内だけで使用できる変数 エラーになる void add(int a, int b)
ローカル変数  定義された関数内だけで使用できる変数 void add(int a, int b) { int c; c = a+b; } void main() add(1,2); printf("%d\n",c); エラーになる

3 ローカル変数とグローバル変数 グローバル変数 プログラム全体で使用できる変数 グローバル宣言 エラーにならない int c;
void add(int a, int b) { c = a+b; } void main() add(1,2); printf("%d\n",c); グローバル宣言 エラーにならない

4 構造体 複数のデータをまとめた新しい型 メンバ変数 構造体の保持する個々のデータ
クラスと構造体 構造体 複数のデータをまとめた新しい型 メンバ変数 構造体の保持する個々のデータ

5 クラス 構造体に専用のメンバ関数を追加 メンバ関数 クラスのデータの処理を行う関数
クラスと構造体 クラス 構造体に専用のメンバ関数を追加 メンバ関数 クラスのデータの処理を行う関数

6 クラスの定義方法 ほとんど、構造体と同じ。 メンバ関数が追加 宣言部分と、定義部分を分けて記述できる。

7 クラスの宣言と定義 ←クラスの宣言 ←クラスのメンバ関数の定義 class TForm1 : public TForm {
__published: // IDE 管理のコンポーネント private: // ユーザー宣言 public: // ユーザー宣言 __fastcall TForm1(TComponent* Owner); }; ←クラスの宣言 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } ←クラスのメンバ関数の定義

8 クラスのメンバの種類 public: クラスの外からも利用できる。 構造体と同じ。 private: クラスのメンバのみ利用できる。
    __published: 例えばForm1に貼り付けたコンポーネントや、 コンポーネントのイベントのメンバ関数がBCBにより自動的に追加される。

9 クラスの宣言と定義 Formにボタンを貼り付けると・・・ ボタンをクリックすると・・・
class TForm1 : public TForm { __published: // IDE 管理のコンポーネント TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // ユーザー宣言 public: // ユーザー宣言 __fastcall TForm1(TComponent* Owner); }; class TForm1 : public TForm { __published: // IDE 管理のコンポーネント TButton *Button1; private: // ユーザー宣言 public: // ユーザー宣言 __fastcall TForm1(TComponent* Owner); }; class TForm1 : public TForm { __published: // IDE 管理のコンポーネント private: // ユーザー宣言 public: // ユーザー宣言 __fastcall TForm1(TComponent* Owner); };

10 メンバ関数の定義 コンポーネントをクリックするとメンバ関数の定義部分が作られる。 ↑ ここにコード(プログラム)を書く
void __fastcall TForm1::Button1Click(TObject *Sender) { } ここにコード(プログラム)を書く

11 メンバ関数の定義 そのイベントに対応したメンバ関数、 “イベントハンドラ関数”が用意される オブジェクトインスペクタのイベントタグで
イベント名をクリックすると、

12 メンバ関数の定義 コンポーネントをダブルクリックした場合も オブジェクトインスペクタに登録される。

13 メンバ関数の書き方 イベントハンドラ以外のメンバ関数は、 クラスの宣言のところにプロトタイプ宣言を 記述する。
privateでもpublicでも良い。 class TForm1 : public TForm { __published: // IDE 管理のコンポーネント TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // ユーザー宣言 void henkou(); public: // ユーザー宣言 __fastcall TForm1(TComponent* Owner); };

14 メンバ関数の書き方 関数の型  クラス名 :: 関数名  引数 {     //    実装部 } :: は、この関数がクラスのメンバ関数であることをしめす演算子です。 void TForm1::henkou() { Caption = "Test"; }

15 メンバ関数の書き方

16 メンバ変数/メンバ関数への アクセス方法 メンバ変数やメンバ関数を使用する場合は、 参照演算子を使う “ . ”演算子
クラスの変数のメンバにアクセス “->”演算子 クラスのポインタ変数のメンバにアクセス ※コンポーネントやFormはポインタ変数

17 メンバ変数/メンバ関数への アクセス方法 void    TForm1 :: henkou(void) {     Caption = "TEST": } では、CaptionはAnsiStringクラスの変数ですが、これはクラスTForm1のメンバ変数なので、 おなじくTForm1のメンバ関数であるhennkou( )で使用する際には、参照演算子はいりません。

18 メンバ変数/メンバ関数への アクセス方法 Button1のCaptionに変更する場合は、 void    TForm1 :: henkou(void) {     Button1->Caption = “TEST”: } となります。 Button1はTForm1のメンバ変数、 “Button1のCaptionはButton1自体のメンバ変数” Button1->Captionというように参照演算子“->”を使って、所属をはっきりさせる。 ※Button1はクラスTButtonのポインタ変数なので、  参照演算子は"->"となる。

19 プロパティ操作による コンポーネントの変更
通常は、オブジェクトインスペクタの プロパティタグで変更できるが、 プログラムでプロパティ変数を直接変更することも出来る。 例: Top=100;

20


Download ppt "ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数."

Similar presentations


Ads by Google