📜  调用“extClockType”的构造函数是不明确的 extClockType time2; - C++ (1)

📅  最后修改于: 2023-12-03 15:41:47.945000             🧑  作者: Mango

调用“extClockType”的构造函数是不明确的

在C++中,如果有多个重载构造函数具有相同名称,但参数列表不同,则存在二义性,编译器可能无法确定哪一个应该被调用。

这个错误通常发生在以下情况下:

  • 在调用构造函数时,参数列表不准确
  • 在调用构造函数时,提供的参数类型不明确,不满足函数重载的要求

例如,下面的代码会报“调用‘extClockType’的构造函数是不明确的”错误:

extClockType time2;

其中,extClockType有多个重载的构造函数,如下所示:

extClockType(int hours, int minutes, int seconds);
extClockType();

因为第二个构造函数使用了空参数列表,所以编译器无法确定应该调用哪一个构造函数。为了避免这个错误,我们需要显式地指定参数列表:

extClockType time2(0, 0, 0);

或者,我们可以使用默认构造函数:

extClockType time2 = extClockType();

总之,我们需要确保在调用构造函数时,提供的参数列表明确且满足函数重载的要求。