在 C++ 中,默认构造函数 是指不需要提供任何实参就可以调用的构造函数。它用于创建对象时完成初始化工作。
默认构造函数的两种形式
无参构造函数 —— 形参列表为空。
所有形参都有默认实参的构造函数 —— 例如 A(int x = 0, int y = 0),调用时可以不带实参。
何时生成默认构造函数
-
编译器自动生成的默认构造函数:
如果用户没有定义任何构造函数,编译器会隐式生成一个合成的默认构造函数。它会对类的成员进行默认初始化(内置类型不初始化,类类型调用其默认构造函数)。 -
用户显式定义的默认构造函数:
你可以自己编写,以完成自定义的初始化逻辑。
重要规则
-
一旦用户定义了任意构造函数(包括拷贝构造、带参构造等),编译器不再自动生成默认构造函数。此时如果代码需要默认构造,就会报错。
-
C++11 起,可以用 = default 显式要求编译器生成默认构造函数,或 = delete 禁止它
#include <iostream>
using namespace std;
class Student {
public:
string name;
int age;
// 用户定义的默认构造函数(无参)
Student() {
name = "无名";
age = 0;
cout << "默认构造函数被调用" << endl;
}
void display() {
cout << "姓名: " << name << ", 年龄: " << age << endl;
}
};
int main() {
Student s1; // 调用默认构造函数
s1.display();
return 0;
}
网硕互联帮助中心



评论前必须登录!
注册