C++ 默认构造函数会在以下几种情况下被调用:
MyClass obj; // 调用默认构造函数
MyClass arr[5]; // 调用默认构造函数五次,分别初始化arr中的每个元素
std::vector<MyClass> vec; // 调用默认构造函数,创建一个空的MyClass类型的向量
vec.push_back(MyClass()); // 调用默认构造函数,创建一个新的MyClass对象并添加到向量中
MyClass obj{/* no arguments */}; // 调用默认构造函数
class MyClass {
public:
MyClass() : MyClass(0) {} // 调用另一个构造函数,这里调用了带有一个int参数的构造函数
MyClass(int x) { /* ... */ }
};
需要注意的是,如果类中定义了其他构造函数(非默认构造函数),编译器将不再提供默认构造函数。在这种情况下,必须显式地调用其他构造函数以初始化对象。