是的,C++ 会为类自动生成默认构造函数(default constructor),当程序员没有为类提供任何构造函数时。生成的默认构造函数有以下特点:
- 不执行任何操作。
- 如果类中有成员变量,它们会采用其类型的默认构造函数进行初始化(如果存在的话)。
- 如果类中有引用类型的成员变量,编译器会报错,因为引用必须绑定到一个已存在的对象,而默认构造函数无法保证这一点。
例如:
class MyClass { int x; }; MyClass obj; // 编译器会自动生成一个默认构造函数,用于初始化 x
在这个例子中,编译器会自动生成一个默认构造函数,用于初始化 int
类型的成员变量 x
。