📜  c++ 基本构造函数 - C++ (1)

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

C++ 基本构造函数

在C++中,构造函数(Constructor)是一种特殊的成员函数,用于初始化类的对象。当创建一个对象时,构造函数会自动调用,并为对象的数据成员设置初始值。

默认构造函数

如果在定义类时没有显式地定义构造函数,那么编译器会自动为该类生成默认构造函数。默认构造函数不接受任何参数,并且不执行任何操作。例如:

class MyClass {
public:
    // 默认构造函数
    MyClass() {
        // 执行一些初始化操作
    }
};
带参数的构造函数

除了默认构造函数外,我们还可以定义带参数的构造函数,用于在创建对象时传递参数并进行初始化。带参数的构造函数可以有多个重载形式。例如:

class MyClass {
public:
    int value;
    
    // 带参数的构造函数
    MyClass(int v) {
        value = v;
    }
};

int main() {
    // 创建对象时传递参数
    MyClass obj(42);
    // obj.value 现在为 42
    return 0;
}
拷贝构造函数

拷贝构造函数用于从一个已存在的对象创建一个新对象。它的参数是一个同类型的引用。默认情况下,编译器会为类提供一个逐个成员拷贝的拷贝构造函数。例如:

class MyClass {
public:
    int value;
    
    // 拷贝构造函数
    MyClass(const MyClass& other) {
        value = other.value;
    }
};

int main() {
    MyClass obj1(42);
    MyClass obj2 = obj1; // 使用拷贝构造函数创建新对象
    // obj2.value 现在为 42
    return 0;
}
默认参数的构造函数

构造函数也可以有默认参数,这样在创建对象时可以选择是否传递参数。例如:

class MyClass {
public:
    int value;
    
    // 默认参数的构造函数
    MyClass(int v = 0) {
        value = v;
    }
};

int main() {
    MyClass obj1;       // 调用默认构造函数
    MyClass obj2(42);   // 调用带参数的构造函数
    // obj1.value 现在为 0
    // obj2.value 现在为 42
    return 0;
}

以上就是C++中基本构造函数的介绍。通过定义构造函数,我们可以有效地初始化对象的数据成员,并在创建对象时传递参数。