私はC++で新しく、静的変数の概念を完全には理解していません。 私はクラス内に静的変数を持っています。クラスとその使用における静的変数とメモリの割り当て
class FCCommunication : public OEMThread
{
public:
FCCommunication();
static bool MASTER;
}
私は二つの文
FCCommunication * FCObject = 0;
FCObject = new FCCommunication();
次使用して、ソース・ファイルでFCCommunication
に私のコードと割り当てメモリを初期化しています今私への質問は、私はMASTER変数にアクセスしようとした場合、何が起こるかということですオブジェクトおよびメモリ割り当てがこの
if(FCCommunication::MASTER)// this gets called before dynamic memory allocation.
{
//do something here.
}
多くの初心者の本とチュートリアルでは、静的メンバー変数をクラスメンバー変数*として説明しています。これは、それらがクラスの特定のインスタンスではなく*クラス*に属しているためです。そのため、静的メンバー変数を個別に定義する必要があります。つまり、インスタンスを作成する前に、静的メンバー変数(または静的メンバー関数)を使用できるということです。 –
私はそれをFCCommunications :: MASTERの代わりにこのFCObject-> MASTERのように呼び出すとどういう違いがありますか?それは私のOSに支障をきたしますか?同じ配分の場合を考えてみましょう。 – SPandya
保護モードのオペレーティングシステムを使用している最新のシステムでは、OSに影響するものはありません。また、特定のインスタンスを使用して静的メンバーにアクセスするのは異常ですが、無効ではありません。 –