静的メンバ変数
クラス全体で1つの値を持つ変数。値はソースにベタ書きする。
マクロ定数 #define に匹敵する存在と思ってよい。
class Hoge {
public:
static int val;
}
int Hoge::val = 100;
注 privateにすると,Hoge::val と書いても外部から参照することはできなくなる。
定数メンバ変数
オブジェクト毎に異なる定数。生成時にコンストラクタで初期化する。
class Hoge {
public:
Hoge( int val )
const int val;
}
Hoge::Hoge( int _val ) : val( _val ) {
...
}
静的メンバ変数の配列
class Hoge {
public:
static std::string names[];
}
std::string Hoge::names[] = {"hage", "hoge"};