#include <iostream>
class Singleton{
private:
static Singleton* s_Instance;
public:
static Singleton& Get(){
return *s_Instance;
}
void Hello() {
std::cout << "Hello" << std::endl;
}
};
Singleton* Singleton::s_Instance = nullptr;
int main(){
Singleton::Get().Hello();
std::cin.get();
}
首先将Singleton类中的静态指针s_Instance设置为空指针,然后在main函数中直接调用Singleton::Get()用来这个指针指向内存的引用。**我的问题是:**
1. 已经被设置为空指针的内存单元应该是不存在的,那么也就无法获取到这个内存单元的引用,但是这段代码居然能够顺利被编译运行,求大佬讲解内部原理
2. 我在调试时发现这个运行从始至终s_Instance的值都是0,也就是空指针,这又是怎么回事呢。