専攻科2年のオブジェクト指向プログラミングの授業の1回目。最初に授業全般の概要を説明した後、オブジェクト指向の歴史とC言語の構造体の説明。...}の考えができた。記述する方法ができて、処理の構造化・データの構造化ができる。この後、様々なプログラム言語が開発され、C言語などもできてきた。データに対して命令するという点で、擬人法のようなイメージで直感的にも分かりやすかった。これがオブジェクト指向の始まりとなる。記述したりして、オブジェクト指向がGUIのプログラムと親和性が良いことから普及が拡大する。C言語にこのオブジェクト指向を取り入れて、C++が開発される。Javaなどが開発される。最近の新しい言語では、どれもオブジェクト指向の考えが使われている。構造体の導入C++でのオブジェクト指向は、構造体の表記がベースになっているので、まずは構造体の説明。前回のプログラムを、もう少しC++のオブジェクト指向っぽい書き方を導入してみる。この際に、分かりやすく記述するため、行数が長くなってきた時のための処理を考慮して、記述してみる。座標系を気にせず処理がかける。オブジェクトに副作用が無いことを示す。←しつこいけどセミコロン忘れないでね。記載されていない減算・除算のプログラムを作成し、レポートを作成する。レポートには、下記のものを記載すること。動作確認の結果プログラムより理解できること。実際にプログラムを書いてみて分かった問題点など...コンストラクタと複素数クラスと隠蔽化2018年4月27日コンストラクタプログラミングでは、データの初期化忘れによる間違いもよく発生する。クラスでは、コンストラクタ(構築子)がある。データ構造の初期化専用の関数。コンストラクタと反対に、デストラクタは、データが不要となった時に自動的に呼び出される関数。隠蔽化と基本的なオブジェクト指向の練習課題として、複素数クラスをあげる。ここでは、複素数の加算・乗算を例に説明をするので、減算・除算などの処理を記述することで、クラスの扱いに慣れてもらう。クラスは、加減算の関数は単純だけど、乗除算の関数を書く時には面倒になってくる。この場合、極座標系でプログラムを書いたほうが判りやすいかもしれない。←しつこく繰り返すけど、セミコロン忘れないでね(^_^;このように、プログラムを開発していると、当初は直交座標系でプログラムを記述していたが、途中で極座標系の方がプログラムが書きやすいという局面となるかもしれない。オブジェクト指向による隠蔽化を正しく行っていれば、利用者に影響なく「データ構造」や「その手続き(メソッド)」を書換えることも可能となる。このように、プログラムをさらに良いものとなるべく書換えることは、オブジェクト指向ではリファクタリングと呼ぶ。値渡し・ポインタ渡し・参照渡しの復習。(参照渡しはC++で導入された考え方)値渡しC言語の基本は、値渡し。呼び出し側の実引数は、関数側の仮引数に値がコピーされる。このため、呼び出し側の変数(下の例ではa)の中身は変化しない。よって、関数の呼び出しで呼び出し側の変数が勝手に中身が変わらないので、予想外の変数の中身の変化が無く分かりやすい。124が表示}ポインタ渡ししかし、上の例では、foo()の呼び出しで、変数aの中身が変化してくれたほうが都合が良い場合もある。この場合は、C言語ではポインタを使って記述する。このように、関数を呼び出して、手元の変数が変化することは、副作用と呼ばれる。副作用の多いプログラムは、変数の値の管理がわかりにくくなるので、副作用は最小限に記述すべき。125が表示}参照渡ししかし、ポインタを多用すると、ポインタを動かしてトラブルも増えることから、ポインタはあまり使わない方が良い。そこで、C++では参照型というものがでてきた。125が表示}参照型は、ポインタを使っていないように見えるけれども、機械語レベルでみればポインタを使ったものと同じ。仕事ができることを説明。データ入力とデータ出力を行うことはある程度理解できる。データ実装者はプログラムを記述できる。これをデータ構造の隠蔽化という。関数名から動作は推測できプログラムも書ける。これを手続きの隠蔽化という。上記のプログラムをそのままC++に書き直すと以下のようになる。pのように対象のオブジェクトを明記する必要はない。注意ここのセミコロンを書き忘れないこと。phoneはprivateなので参照できない。;}用語の解説:C++のプログラムでは、データ構造とデータの処理を、並行しながら記述する。データ構造に対する処理は、メソッド(method)と呼ばれる。データ構造とメソッドを同時に記載したものは、クラス(class)と呼ぶ。そのclassに対し、具体的な値や記憶域が割り当てられたものをオブジェクト(object)と呼ぶ。専攻科2年のオブジェクト指向プログラミングの授業の1回目。最初に授業全般の概要を説明した後、オブジェクト指向の歴史とC言語の構造体の説明。...}の考えができた。記述する方法ができて、処理の構造化・データの構造化ができる。この後、様々なプログラム言語が開発され、C言語などもできてきた。データに対して命令するという点で、擬人法のようなイメージで直感的にも分かりやすかった。これがオブジェクト指向の始まりとなる。記述したりして、オブジェクト指向がGUIのプログラムと親和性が良いことから普及が拡大する。C言語にこのオブジェクト指向を取り入れて、C++が開発される。Javaなどが開発される。最近の新しい言語では、どれもオブジェクト指向の考えが使われている。構造体の導入C++でのオブジェクト指向は、構造体の表記がベースになっているので、まずは構造体の説明。miniOrange。