クラスは、オブジェクト指向言語の中心的な機能・・・。
オブジェクト指向については別のサイトを参照の事として、C++では、以下のように定義する・・・。
class <クラス名>{
<アクセス指定子>:
<メンバ変数の型> <メンバ変数名>;
<メンバ関数のプロトタイプ宣言>;
};
こんな感じで見た目は構造体に似ているが、クラスはメンバ変数に加えてメンバ関数を定義できる・・・。
C言語の構造体の頁で作ったstruct_tag_profileのC++クラス版を定義する・・・。
name, age, addressはメンバ関数からのみアクセスできるprivateメンバとして定義する・・・。
そして外部からも呼べるpublicメンバとして、name, age, addressを設定するinputメンバ関数、
name, age, addressを出力するoutputメンバ関数を定義する・・・。
次にメンバ関数の内部の処理を定義する・・・。
<戻り値型> <クラス名>::<メンバ関数名>(引数型 引数名, ...){ <内部の処理>; }
まずはinputメンバ、
入力演算子でname, age, addressに入力・・・。
outputメンバは、
出力演算子でname, age, addressを出力・・・。
main関数では、まずclass_profileのローカルオブジェクトとして、profを宣言する・・・。
<クラス名> <オブジェクト名>;
class_profileはあくまで雛形であり、実際に使うには変数とおなじようにインスタンス(実体)の宣言などが必要・・・。これがオブジェクト・・・。
inputメンバ関数でname, address, ageを設定する・・・。
入力が終わったら、今度は入力されたname, age, addressをoutputメンバ関数で出力・・・。
実行すると、
$ ./class name: Taro age: 20 address: Tokyo name: Taro age: 20 address: Tokyo
ということでC++クラス版でも入力、出力ができた・・・。