C++ 初始化错误 std::set

C++ badly initialized std::set

我在 class 中有一个 public 变量,声明为

std::set<int> test;

并且从未显式初始化。当我尝试从对象实例的共享指针 c 访问它时:

std::set<int>& myset = c->test;

我在调试器中看到 myset 初始化错误:它的字段 _Myhead_Mysize 都为空。您能解释一下为什么会这样吗?

您正在使用 std::set<>,它有自己的构造函数来初始化内部数据。所以 null 是可以的。

问题是指针没有正确初始化,虽然我认为是。

我很困惑,因为我来自 Java,空指针会在不让我检查对象的内部变量的情况下生成异常,所以我过早地排除了这个选项!