📅  最后修改于: 2023-12-03 15:41:47.945000             🧑  作者: Mango
在C++中,如果有多个重载构造函数具有相同名称,但参数列表不同,则存在二义性,编译器可能无法确定哪一个应该被调用。
这个错误通常发生在以下情况下:
例如,下面的代码会报“调用‘extClockType’的构造函数是不明确的”错误:
extClockType time2;
其中,extClockType有多个重载的构造函数,如下所示:
extClockType(int hours, int minutes, int seconds);
extClockType();
因为第二个构造函数使用了空参数列表,所以编译器无法确定应该调用哪一个构造函数。为了避免这个错误,我们需要显式地指定参数列表:
extClockType time2(0, 0, 0);
或者,我们可以使用默认构造函数:
extClockType time2 = extClockType();
总之,我们需要确保在调用构造函数时,提供的参数列表明确且满足函数重载的要求。