Download presentation
Presentation is loading. Please wait.
Published byΦερενίκη Βουρδουμπάς Modified 約 5 年前
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;
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.