一个类可以有几个默认的构造函数吗?我想知道,因为我认为根据“默认”的定义,任何事物之一只能具有一个默认功能,但我不太确定。
问问题
181 次
1 回答
7
一个类可以有多个默认构造函数。但是在这种情况下,您不能默认构造它,因为在尝试这样做时,您会遇到歧义:
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
};
于 2013-06-17T22:55:34.077 回答