プライベートな静的メンバへ静的メンバ関数でアクセス
// klass_static_private.cpp #include <iostream> class klass_static { public: klass_static(); static int get_count(); private: static int count; }; // private でも初期化は外で int klass_static::count = 0; klass_static::klass_static() { count++; std::cout << count << std::endl; } int klass_static::get_count() { return count; } int main() { klass_static *k1, *k2, *k3; k1 = new klass_static(); k2 = new klass_static(); k3 = new klass_static(); // private で定義されてると外からは klass_static::count で参照できないから // 静的メンバ関数を使って値を取得する std::cout << klass_static::get_count() << std::endl; return 0; }
1 2 3 3