static・静的メンバ関数
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
static・静的メンバ変数で、メンバ変数をオブジェクトではなく、クラスに属するようにする方法を見ました。
メンバ関数についても、static宣言が可能であり、非静的データを使用しない関数は、静的メンバ関数として定義したほうが効率的です。
スポンサーリンク
#include <iostream>
class obj_count {
private:
static int count; // 生成されたオブジェクトの数
public:
// インクリメント
obj_count() {
++count;
}
// デクリメント
~obj_count() {
--count;
}
// count数を表示。静的メンバ関数。
static void display() {
std::cout << count << "\n";
}
};
// 静的メンバ変数countの初期化
int obj_count::count = 0;
int main() {
obj_count a_obj;
obj_count::display(); // オブジェクトのカウント数
obj_count b_obj;
obj_count::display(); // オブジェクトのカウント数。
obj_count c_obj;
obj_count::display(); // オブジェクトのカウント数。
return 0;
}
注意点。
1.static void display()でのクラス内での静的メンバ関数宣言。
2.obj_count::display()での、静的メンバ関数の呼び出し。
実行結果。
1 2 3
スポンサーリンク
>> 次の記事 : クラス継承・親クラスと子クラス
<< 前の記事 : static・静的メンバ変数
- - 関連記事 -
- 派生クラスのコンストラクタ・デストラクタ
- 派生クラスによる関数の隠蔽
- 仮想クラス
- 抽象クラス
- 仮想関数・virtualキーワード
- 親クラスの引数ありコンストラクタを子クラスから初期化・動的サイズのスタック
- クラスのアクセス制限キーワード・private, protected, public
- スタックを実装したクラスを拡張する
- クラス継承・親クラスと子クラス
- static・静的メンバ変数
- 定数のconstメンバ関数をクラスに宣言
- 定数のconstメンバ変数をクラスに宣言
- フレンドクラス・friend
- フレンド関数・friend
- クラスの中にメンバ関数(メソッド)を実装する
- explicit・コンストラクタを明示する
- クラスで自動的に生成されるメンバ関数
- コピーコンストラクタ
- 引数つきのコンストラクタを持つクラス定義
- コンストラクタで自動的に初期化する
スポンサーリンク