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

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

構造体 構造体とは? 複数のデータをパックしたもの。 新しい “ 型 “ として使用できる. 構造体 キーワード struct strcut は構造体を宣言する命令。 struct { double x,y; }a,b,c; ↑ ここまでが宣 言 ← この形式で、構造体 a,b,c, を定 義.
独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
C 言語講座第 5 回 構造体. 構造体とは ... 異なる型の値をまとめて新しい型とする 機能がある . つまり , 複数の変数を 1 つのまとまりにできる . 配列と違って同じ型でデータをまとめるのではな く違った型のデータをまとめられる .
マルチフォーム BCB では親 Form から子 Form を呼び出す ことが出来る。 Unit1.cpp に子 From のヘッダー Unit2.h を インクルードしておく 親 Form から子 Form のメソッド –Show() –ShowModal() を使うことで呼び出せる。
C++ 基礎. 目次 C++ とは? C++ におけるオブジェクト指向 課題 C++ とは? Cには足りなかったものが付与されて出来た物 具体的には、 情報の隠蔽(カプセル化) 共通の名前付け(関数のオーバーロード) 再利用の仕組み クラスの導入 など オブジェクト指向 C++ では大規模なプログラミングの.
2001年11月更新 2章 Windowプログラムの構成 Windowsプログラムおよび       PiasTkプログラムの基本構造.
Generic programming と STL
TTimer タイマーコンポーネント 一定時間ごとにイベントを起こして処理をおこなう.
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
TMenu メニューバーを用いた操作のための コンポーネント.
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
第12回新しい型と構造体.
第13回構造体.
C#によるWindowsFormApplication入門
第12回構造体.
Step-by-Step Guide on How to Start ALICE Analysis
構造体.
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
社会人学習講座 「Javaプログラミング概論」
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
プログラミング 3 構造体(1).
プログラミング演習3 第2回 GUIの復習.
補足説明.
Unity, C# 移動するモデルの位置を 指定した位置へ自動修正
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
Borland Delphi 6 でビジュアルプログラミング
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
プログラミング演習3 第3回 ミニプロジェクト.
暗黙的に型付けされる構造体の Java言語への導入
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
精密工学科プログラミング基礎 第10回資料 (12/18実施)
プログラミング 3 構造体(2).
メモリの準備 メモリには、その準備の方法で2種類ある。 静的変数: コンパイル時にすでにメモリのサイズがわかっているもの。 普通の変数宣言
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
5.9 メソッドのオーバーロード 5.10 変数の引渡し 2003/11/21 紺野憲一
第11回 プログラミングⅡ 第11回
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
一時的な型 長谷川啓
プログラミングⅠ 平成30年10月15日 森田 彦.
精密工学科プログラミング基礎Ⅱ 第5回資料 今回の授業で習得してほしいこと: 構造体 (教科書 91 ページ)
構造体と共用体.
GUIプログラミングの基本=イベント イベントとは イベントの例 ウィンドウやウィンドウ内のパーツ(ボタン・スクロールバーなど)に発生する
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
第5回 プログラミングⅡ 第5回
メンバとメソッド C言語の構造体 変数の集まり C#言語のクラス + それを処理する関数の集まり フィールド または メンバ変数 メンバ
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
フレンド関数とフレンド演算子.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
演算子のオーバーロード.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング演習II 2003年11月19日(第6回) 木村巌.
プログラミング演習II 2003年12月10日(第7回) 木村巌.
値渡しと参照渡しについて.
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
3.テキストボックスによる データ入力 データ入力と表示のプログラム.
C言語講座第5回 2017 構造体.
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
Presentation transcript:

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

ローカル変数とグローバル変数 ローカル変数 定義された関数内だけで使用できる変数 エラーになる 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); エラーになる

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

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

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

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

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

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

クラスの宣言と定義 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); };

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

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

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

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

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

メンバ関数の書き方

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

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

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

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