[Quote=引用 11 楼 PPower 的回复:]
写个例子,加深理解:
class A
{
int f ;
public :
A(int a = 0):f(a){}
A():f(-1){}
};
A *p1 = new A ; //调用哪个构造函数?
A *p2 = new A() ;//调用哪个构造函数?
[/Quote]
如果把这个写全了的话,应该是:
class A
{
int f ;
public :
A(int a = 0):f(a){}
A(void):f(-1){}
};
[Quote=引用 11 楼 PPower 的回复:]
写个例子,加深理解:
class A
{
int f ;
public :
A(int a = 0):f(a){}
A():f(-1){}
};
A *p1 = new A ; //调用哪个构造函数?
A *p2 = new A() ;//调用哪个构造函数?
[/Quote]
这个并不能说明问题,而这个示例实际上会导致编译器无法选择具体被调用的构造函数。