c++中的类和构造函数

Classes in C++ and Constructor Functions

本文关键字:构造函数 c++      更新时间:2023-10-16

一个类可以有几个默认构造函数吗?我想知道,因为我会认为任何东西之一只能有一个默认函数的定义"默认",但我不太确定。

一个类可以有多个默认构造函数。但是,在这种情况下,您不能默认构造它,因为当尝试这样做时,您会遇到歧义:

class C
{
public:
  C(); // a default constructor
  C(int = 0); // another default constructor
};
C c1; // error: ambiguity; both C::C() or C::C(int) with the default argument 0 match
C c2(0); // OK, no ambiguity

但是请注意,不能有两个具有相同签名的构造函数:

class C2
{
public:
  C2() {}
  C2() {} // error: C2::C2() already defined
};