📜  C ++ |构造函数|问题9(1)

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

C++ 构造函数问题9

在 C++ 中,构造函数是一种特殊的函数,它用于创建对象时自动调用。但有时候我们可能需要多个构造函数来满足不同的需求。本文将介绍 C++ 中的构造函数重载和默认构造函数的实现方法。

构造函数重载

在 C++ 中,可以使用函数重载机制来创建多个构造函数。这样可以根据实参的不同,调用不同的构造函数,从而实现构造函数的重载。

class Car {
public:
  Car(); // 默认构造函数
  Car(const char* name); // 带参数的构造函数
  Car(const char* name, int year, int price); // 多个参数的构造函数
};

在上面的代码中,我们定义了两个带参数的构造函数和一个默认构造函数。根据传入的实参的不同,我们可以调用不同的构造函数,从而创建不同的对象。

Car car1; // 调用默认构造函数
Car car2("Benz"); // 调用带参数的构造函数
Car car3("Benz", 2021, 1000000); // 调用多个参数的构造函数
默认构造函数

默认构造函数是一种没有参数的构造函数。当我们没有定义构造函数时,编译器会自动生成一个默认构造函数。如果我们需要显式地定义一个默认构造函数,可以使用以下方式:

class Car {
public:
  Car() = default; // 显式定义默认构造函数
};

如果不需要默认构造函数,则可以将其删除:

class Car {
public:
  Car() = delete; // 删除默认构造函数
};

需要注意的是,如果我们显式地定义了构造函数,编译器不会再自动生成默认构造函数,此时如果需要默认构造函数,就需要我们显式地定义它。

以上就是 C++ 中构造函数重载和默认构造函数的实现方法。通过使用构造函数重载和默认构造函数,我们可以更加灵活地创建对象。