我想知道A*我的课程中是否有成员,nullptr如果我有这种形式的班级构造函数,我们不应该自动设置:
class MyCLass
{
A* m_pointer;
public:
MyCLass()
{
}
};
Run Code Online (Sandbox Code Playgroud)
如果我在C++ 11中做MyCLass* o = new MyCLass;或不做 MyCLass* o = new MyCLass();,这有关系吗?
Hos*_*ork 15
指针是"POD类型"......又名"普通旧数据".这里总结了默认初始化时间和位置的规则:
所以不行.对于类的构造函数是什么并不重要,如果它是一个原始指针作为类的成员.你实际上并没有实例化这个类.所以喜欢Foo *或std::vector<Foo> *以*结尾的成员不会被初始化为nullptr.
智能指针类不是POD.因此,如果您使用unique_ptr<Foo>或shared_ptr<Foo>创建类的实例,那么如果您没有初始化它们,那么它确实有一个构造函数使它们实际为null.
如果我做MyCLass*o = new MyCLass,这是否重要; 或者我做MyCLass*o = new MyCLass(); 在C++ 11中?
请问每个问题一个问题.