📜  C++中的构造函数重载(1)

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

C++中的构造函数重载

在C++中,构造函数是一种用于初始化对象的特殊成员函数。构造函数与类名相同,没有返回类型,可以有参数,可以被重载。在本文中,我们将重点关注C++中的构造函数重载。

构造函数重载

在C++中,我们可以使用相同的名称创建多个构造函数,只要它们的参数列表不同。这被称为构造函数重载。下面是一个简单的例子:

class Example {
  public:
    Example(int num) {
        std::cout << "Constructor called with " << num << std::endl;
    }
    Example(double num1, double num2) {
        std::cout << "Constructor called with " << num1 << " and " << num2 << std::endl;
    }
};

上面的代码定义了一个类Example,它有两个构造函数。第一个构造函数使用一个整数作为参数,第二个构造函数使用两个浮点数作为参数。当我们创建一个对象时,将选择与提供的参数列表最匹配的构造函数。

Example ex1(10);
Example ex2(3.14, 2.7);

上面的代码将分别调用第一个和第二个构造函数,并输出以下内容:

Constructor called with 10
Constructor called with 3.14 and 2.7
默认构造函数

如果我们没有定义任何构造函数,编译器将为我们自动生成一个默认构造函数。这个构造函数不需要参数,并使用默认值初始化所有成员变量。例如:

class Example {
  public:
    int num;
    double decimal;
};

上面的代码中,我们没有定义任何构造函数,因此编译器将为我们自动生成以下默认构造函数:

Example() {
    num = 0;
    decimal = 0.0;
}

当我们创建一个Example对象时,将使用默认构造函数初始化成员变量。

Example ex;

上面的代码将创建一个Example对象,并使用默认构造函数将其初始化为num=0decimal=0.0

小结

在C++中,我们可以使用构造函数重载来创建不同的构造函数,以便根据不同的参数列表来初始化对象。如果我们没有定义任何构造函数,编译器将为我们生成一个默认构造函数。构造函数是C++中非常有用的成员函数,可以使我们更加方便地初始化对象。