📜  我们可以重载构造函数吗?无论(1)

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

可以重载构造函数吗?

当我们创建一个类时,我们可以定义一个或多个构造函数。构造函数是类中特殊的成员函数,其名称必须与类名相同。构造函数用于初始化对象的成员变量。在C++中,我们可以重载一个函数,也可以重载构造函数。

构造函数重载

构造函数重载是指在同一个类中定义多个构造函数,这些函数根据不同的参数列表进行区分。这允许我们以不同的方式初始化类的对象。在以下示例中,我们演示了如何重载构造函数。

class myClass {
  public:
    myClass() {
      std::cout << "default constructor called." << std::endl;
    }
    
    myClass(int x) {
      std::cout << "constructor with integer parameter called." << std::endl;
    }
};

int main() {
  myClass obj1;
  myClass obj2(0);
  return 0;
}

该程序将输出:

default constructor called.
constructor with integer parameter called.

这里,我们定义了两个构造函数:一个无参数的默认构造函数和一个带有整数参数的构造函数。当我们创建myClass的一个新对象obj1时,将调用默认构造函数。当我们创建另一个对象obj2并将整数值0传递给它时,将调用参数为整数的构造函数。这允许我们以不同的方式初始化myClass对象。

总结

在C ++中,我们可以使用构造函数重载来允许对象以多种方式进行初始化。这使我们有更多的灵活性来设计和使用类。