ホームに戻る
クラス
#include <iostream>
/*
*
* クラス
*
* Cの構造体を拡張したもの
* 構造体の要素をメンバ変数と呼び、
* クラスでは新たにメンバ関数を持つ。
*
* コンストラクタは作成時に自動的に実行され、
* デストラクタは破棄時に自動的に実行される。
*
* 作成時はブロック内で定義された場合と new で生成した場合。
* 破棄時はブロックを出た場合と delete を呼んだ場合。
*
* クラスの目的はデータの隠蔽と安全性の確保であるため、
* データはできるだけ privete で定義するべきであるし、
* 値の出し入れはメンバ関数内でデータの整合性を確認すべきである。
*
* クラスを設計する場合のアイデアとして、
* データを扱う場合は必ずメンバ関数を使う必要が無い場合がある。
* 例えば次のような外部関数で十分な場合がある。
*
* void f(A &a){}
*
*/
class A{
int num; // メンバ変数
public:
A(int n = 1) : num(n){std::cout << "const A" << std::endl;} // コンストラクタ
~A(){std::cout << "dest A" << std::endl;} // デストラクタ
int f(); // メンバ関数
};
int A::f(){
std::cout << "func A" << std::endl;
return this->num; // this はクラス自身のポインタをあらわす
}
int main(){
A a; // コンストラクタを実行
std::cout << a.f() << std::endl;
return 0;
// デストラクタを実行
}
const A
func A
1
dest A