クラスの作り方をごく簡単に、いい加減に説明します。 かなりいい加減なので、決して他言してはいけません。 まず、構造体のメンバに関数が加わったようなものと大ざっぱに理解しましょう。
もっとも単純なクラスの作り方です。アクセスコントロール (access control)とは、メンバが外からアクセスできるかどうか というように単純に考えてください。(本当は、もう少し面倒です) アクセスコントロールが、public:であれば外からアクセスできます。 何も書かないとprivate:の意味になってしまいます。クラスの作り方手順 class クラス名 { アクセスコントロール: クラスメンバの宣言; };
このように定義すると、aやstrはプライベートなメンバ、 bや関数show_classはパブリックなメンバということになります。 上の例では、関数show_classの中身をクラスの定義の中にそのまま書いています。 しかし、これが長い場合は非常に見づらくなります。class test { int a; char str[32]; public: int b; void show_class(int c){ .... } }
のように記述されることが多い。::はスコープ解決演算子 と呼ばれるものでclass test { int a; char str[32]; public: int b; void show_class(int c); } void test :: show_class(int c) { ..... }
関数の戻り値の型 クラス名::関数名(引数リスト)
のように使います。
では、クラスメンバへのアクセス方法をごく簡単に解説します。
パブリックメンバであれば、構造体の時と同じように扱えます。
論より証拠、サンプルを示しましょう。
cl01クラスのメンバであるaはプライベートメンバですので クラスの外からはアクセスできません。 従ってmain関数からfirst.a = 15;などとするとエラーになります。
main関数内でcl01 first, second;などとあたかもcl01という データ型の変数を宣言しているようですね。 これも構造体の時と似ていますね。 構造体について忘れてしまったときは、 C言語編第15章を 参照してください。
細かいことですが、クラス宣言後にはセミコロン「;」が必要ですが
メンバ関数の記述の最後にはセミコロンがないことに注意してください。
実行結果は左の通りです。
今回は、細かなところをすべて無視して
最も簡単なクラスの作り方だけを解説しました。
ともかく、書けることを主眼にしましたので途中の説明にはかなり
無謀なところがあります。後の章で少しずつ訂正していきます。
ともかくこの章を読んだだけで何とかクラスらしきものは作れるようになった
筈です。それだけで大成功です。
Update Jan/05/1997 By Y.Kumei