有默认参数的构造函数等同于无参数的构造函数

阅读更多
class DateTimeType :
	public DateType ,public TimeType
{
public:
	DateTimeType(void);
	~DateTimeType(void);
	DateTimeType(int year=1,int month=1,int day=1,int hour=1,int min=1,int sec=1):DateType(year,month,day),TimeType(hour,min,sec){};
	void display();
};


编译这段代码时,遇到警示信息:
warning C4520: “CText”: 指定了多个默认构造函数;error C2668: “CText::CText”: 对重载函数的调用不明确。

后来把默认参数去掉就好了,c++编译器将由默认参数的构造函数于无参的构造函数看做是等同的,后续会造成对重载函数的调用不明确。

你可能感兴趣的:(warning,C4520,指定了多个默认构造函数,c++)