📜  C++构造函数(1)

📅  最后修改于: 2023-12-03 14:39:59.727000             🧑  作者: Mango

C++构造函数

简介

构造函数(Constructor)是C++中一种特殊的成员函数,用于初始化类的对象。它会在对象被创建时自动调用,负责给对象的成员变量赋初值。构造函数可以有参数,也可以没有参数(称为默认构造函数)。在C++中,每个类可以有一个或多个构造函数。

构造函数的特点
  • 构造函数的名称必须与类名相同,且没有返回类型。
  • 构造函数在对象创建时自动调用,不能手动调用。
  • 对象创建时只会调用一个构造函数,该构造函数由编译器根据参数匹配进行选择。
  • 构造函数可以有多个重载版本,通过参数的不同来区分。
默认构造函数

如果一个类没有定义任何构造函数,编译器会自动生成一个默认构造函数。默认构造函数没有任何参数,且不执行任何操作。当对象被创建时,会自动调用默认构造函数来初始化对象的成员变量。

class MyClass {
public:
    MyClass() {
        // 默认构造函数
    }
};
带参数的构造函数

构造函数可以有一个或多个参数,用于在对象创建时对成员变量进行初始化。通过传递不同的参数,可以创建具有不同属性的对象。

class MyClass {
public:
    int value;

    MyClass(int v) {
        value = v;
    }
};
构造函数重载

一个类可以有多个构造函数,它们的参数不同以区分不同的构造方式,这就是构造函数的重载。重载构造函数的目的是方便程序员在创建对象时提供不同的初始化方式。

class MyClass {
public:
    int value;

    MyClass() {
        value = 0;  // 默认构造函数
    }

    MyClass(int v) {
        value = v;
    }
};
拷贝构造函数

拷贝构造函数用于创建一个新对象,该对象与另一个同类对象具有相同的值。通常情况下,拷贝构造函数会创建一个新的独立对象,而不是简单地复制指针。

class MyClass {
public:
    int value;

    MyClass(const MyClass& other) {
        value = other.value;
    }
};
析构函数

析构函数(Destructor)是与构造函数相对应的一种特殊成员函数,用于销毁对象并释放相应的资源。析构函数在对象被销毁时自动调用,用于清理对象使用的资源。与构造函数不同的是,析构函数没有参数、没有返回值,名称与类名相同但前面加上一个波浪号(~)。

class MyClass {
public:
    ~MyClass() {
        // 析构函数
    }
};
总结

构造函数是C++中用于初始化对象的特殊成员函数。通过构造函数,可以为对象的成员变量赋予初值,并灵活地创建不同属性的对象。同时,析构函数用于销毁对象并释放资源。熟练掌握构造函数的使用对于编写高质量的C++代码非常关键。