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,空指针会在不让我检查对象的内部变量的情况下生成异常,所以我过早地排除了这个选项!
我在 class 中有一个 public 变量,声明为
std::set<int> test;
并且从未显式初始化。当我尝试从对象实例的共享指针 c
访问它时:
std::set<int>& myset = c->test;
我在调试器中看到 myset
初始化错误:它的字段 _Myhead
和 _Mysize
都为空。您能解释一下为什么会这样吗?
您正在使用 std::set<>,它有自己的构造函数来初始化内部数据。所以 null 是可以的。
问题是指针没有正确初始化,虽然我认为是。
我很困惑,因为我来自 Java,空指针会在不让我检查对象的内部变量的情况下生成异常,所以我过早地排除了这个选项!