云计算百科
云计算领域专业知识百科平台

深入理解C++ 构造函数<一> 默认构造函数

在 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;
    }

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 深入理解C++ 构造函数<一> 默认构造函数
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!