最近,我广泛使用以下 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
,将返回谁的引用?