私は基本的に私は、私は静的メンバーを持つクラスのコンストラクタはC++でいつ実行されますか?
を行い、このコードヘッダファイル
class Application{
public:
static Application& getInstance()
{
return *mInstance;
}
Application();
void run();
protected:
static Application* mInstance;
ソースファイル
Application* Application::mInstance;
Application::Application()
{
mInstance = this;
}
を持って Cに新たなんだ++ので、私はまだそれについて多くを知らない
Application::getInstance().run();
Applicationクラスのコンストラクタはいつ実行されますか?
ビジュアルスタジオで動作するようです。 私の質問はなぜこれが機能するのですか?
getInstanceがnullポインタを返さないのはなぜですか?私はクラスをインスタンス化していないので。
このコードは標準ですか?
これは最新のC++コンパイラでも動作しますか?それが明示的コードによってと呼ばれるどこかそれは(スタックまたはヒープ上の)メモリ内のオブジェクトを作成している場合
getInstanceの前の任意の場所にオブジェクトを作成しますか? – deviantfan
コンストラクタが実行されるとき、それは "クラスのコンストラクタ"ではなく、そのクラスの特定のオブジェクトのコンストラクタです。これまでに投稿したサンプルコードは、クラスのオブジェクトを作成しません。したがって、コンストラクタは決して実行されません。 – AnT
よく見る[Scott Meyerのシングル](http://stackoverflow.com/questions/30557133/singleton-and-interface-implementation/30557174#30557174) –