取消引用 nullptr 类对象

问题描述

我正在浏览一个关于 c++ 中静态的 youtube 视频,其中我发现了一段让我感到困惑的代码

#include<iostream>
using namespace std;

class Singleton {
    static Singleton* s_instance;
public:
    static Singleton& Get() { return *s_instance; }

    void display() {
        cout << "Hello" << endl;
    }

};
Singleton* Singleton::s_instance=nullptr;

int main() {
    Singleton::Get().display();
}

我想知道为什么编译器没有给出错误,因为我们在 Get() 函数中返回了一个取消引用的 nullptr 对象。 同样,当我尝试相同的方法,但将 Get() func 的返回类型设置为 Singleton 而不是 Singleton& 时,编译器确实抛出了一个错误,指出 s_instance 是一个 nullptr。 能否解释一下Get() func 的引用返回类型是否与此有关?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)