staticの使い方5〜静的メンバ変数(属性)〜


目次に戻る


C++でプログラミングをしている時はたいていグローバル変数は使いません。グローバ ル変数はどこからでもアクセスできる為オブジェクト指向の「情報隠蔽」から道がそれてし まうからです。
 
それでも、いろいろなプログラムを実装していく上でクラス間の共通データの保持な どでグローバル変数が欲しい状態があります。まぁ、あまりにもまれなので私にはそうい った経験はありませんが、VCL等のGUI系のライブラリではグローバル変数を使って機 能を実装している例をよくみかけます。
 
グローバル変数を使う必要がある例はまれですが、そのまれな例の中でさらにまれ に「同一クラス間のみで共通する変数を持ちたい」場合があります。そういう時は、クラス の属性(メンバ変数)をstatic宣言し、静的メンバ変数にします。

静的メンバ変数を定義する方法は少し特殊でし。次の例のようにクラス宣言部の中で 宣言し、クラス宣言部の外部で定義する必要があります。

 
// testclass.h  ヘッダファイ ル
class testclass
{
    :
    static int FHandle;      //静的メンバ変数の宣言
public:
    :
    :

};
 

// testclass.cpp 実装部
#include "testclass.h"

int testclass::FHandle;   //静的メンバ変数の定 義



目次に戻る