ITメモ
Make SiteMap C++




[C++] クラス / Class











クラスとは


データを操作する命令を備えた道具箱で、下記のメンバーを保持することができる。
  • フィールド
  • コンストラクタ
  • プロパティ
  • メソッド
  • イベント


コンストラクタ・・・オブジェクト宣言時に初期値を設定する特殊な初期化関数。
デストラクタ ・・・オブジェクトが消滅する時、その後始末をする後処理関数。

クラス名 : mycls ・・・クラス名の例
コンストラクタ名 : mycls ・・・クラス名と同じ
デストラクタ名 : ~mycls・・・クラス名に~がつく


Back



アクセス修飾子の種類

public クラス外からでも利用可能
構造体(struct)のメンバでアクセス修飾子を指定しない場合のデフォルト。
protected 同一クラス内と、そのクラスを継承する派生クラス(サブクラス)内からの利用が可能。
private 同一クラス内からのみ利用可能。
同一クラスであれば他のインスタンスからもアクセス可能。
クラス(class)のメンバーでアクセス修飾子を指定しない場合のデフォルト。



クラスの変数宣言


クラスの宣言・定義

class クラス名{
private:
//「private」は、クラス外からアクセスできないエリア
//クラス内でのみ利用したい変数・関数などを記述
//データメンバ

protected:
//クラス内と継承した派生クラスだけがアクセスできるエリア

public:
//「public」は、クラス外からアクセスできるエリア
//クラスで呼び出された時に利用したい変数・関数などを記述
//メンバ関数
};


クラスにおける宣言・定義のフォーマット

class クラス名{
アクセス修飾子 :
型 変数名;
関数 関数名(引数){
処理
}

アクセス修飾子 :
型 変数名;
関数 関数名(引数){
処理
}
};


コンストラクタとデストラクタ

「コンストラクタ」と「デストラクタ」は、インスタンスが作成・破棄された時に実行される関数。
コンストラクタ=「クラス名と同名()」
デストラクタ=「〜クラス名と同名()」
と定義される。


コンストラクタは、
インスタンスが作成されたときに行う動作を定義する関数で、 クラス名と同じ名前の関数をクラス内に作成すると、 インスタンスを作成したときに、クラス名と同じ関数が実行される。
コンストラクタは、オーバーロード(多重定義)が可能。

デストラクタは、
クラス名と同名の関数名の前に「〜」をつけた「〜関数名」と記述することで、デストラクタとなる。
デストラクタは、インスタンスを破棄(クラスの使用をやめる)時に実行されるもの。


Back



クラスの継承


クラスの継承は、クラスに新しい機能を追加して、新しいクラスを作り出すことを言う。
クラスの継承をするには、クラスを作成する時に、クラス名に継承するクラスのを明記すればクラス継承ができます。

//継承クラス作成の宣言
class 継承クラス名:継承修飾子 元のクラス名{

private:

public:

};



継承修飾子

継承修飾子は、基底クラス(元のクラス)の引き継ぎ方を指定する修飾子。
public 基底クラス(元のクラス)で設定したアクセス修飾子をそのまま継承する場合に指定する。
protected 基底クラス(元のクラス)で、「public」と指定されたものを「protected」に変更し、他はそのままにして継承する場合に指定する。
private 基底クラス(元のクラス)の全てを「private」に変更して継承する場合に指定する。


Back



クラスの使用方法


クラスを使用する場合、
・インスタンスを作成する
・インスタンス名を使って、クラス内の「変数」「関数」を利用する


インスタンスは、何個でも作れる。



//インスタンスの作成
クラス名 インスタンス名;

//インスタンス作成と同時に、コンストラクタに引数を渡す時のインスタンス作成
クラス名 インスタンス名(引数);


//クラス内の関数を実行
インスタンス名.関数名(引数);


//ポインタでのインスタンス作成
クラス名 *ポインタ名;
ポインタ名=new クラス名;
ポインタ名->関数名(引数);


Back