最近、次の getInstance() メソッドを広範囲に使用して、いくつかの C++ コードを読みました。
class S
{
private:
int some_int = 0;
public:
static S& getInstance()
{
static S instance; / (*) /
return instance;
}
};
このコード フラグメントの使用方法から、getInstance() が のようreturn this
に動作し、 のインスタンスのアドレス (または参照) を返すことがわかりましたclass S
。しかし、私は混乱しました。
S
1) line(*) で定義された静的変数は、メモリ内のどこに割り当てられますか? そして、なぜそれは次のように機能するのreturn this
ですか?
2) のインスタンスが複数存在しclass S
、その参照が返される場合はどうなりますか?