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