使用以下Singleton实现:
01 class Singleton
02 {
03 public:
04 static Singleton* Instance();
05
06 protected:
07 Singleton();
08 Singleton(const Singleton&);
09 Singleton& operator= (const Singleton&);
10 };
11
12 Singleton* Singleton::Instance()
13 {
14 static Singleton m_instance;
15 return &m_instance;
16 }
我的问题与第14行有关。
静态方法通常对静态变量进行操作,因此很明显 Instance()方法对静态 m_instance 变量进行操作。但似乎从第14行中删除“ static ”会产生完全相同的结果,即只创建一个实例。
假设静态方法中声明的任何变量自动设置为静态是否正确?