构造函数重载
class Tdate{
public:
Tdate(int d){
month = 4;
day = d;
year = 1998;
cout<<"constructor1"<<endl;
}
Tdate(int m,int d = 12){
month = m;
day = d;
year = 1997;
cout<<"constructor2"<<endl;
}
protected:
int month;
int day;
int year;
};
int main(){
Tdate aday(11,2);
getchar();
}
第一个构造函数能调用吗,怎样调用呢 C
[解决办法]
这种参数有默认值的不能构成重载、、
[解决办法]
能编译通过?
[解决办法]
当你定义一个参数的对象的时候,这时候就会报错,因为不知道调用的是哪个构造函数!
[解决办法]
这么为难编译器,那么编译器只能告诉你:这是个未定义行为
[解决办法]
加句Tdate aday(11);能编译过?
[解决办法]
当你调用只有一个实参的构造函数时。。编译器无法进行匹配。。两个函数都可以。。