2011-08-25 135 views
0

我是C++的新手,并试图编写一个“日期类”程序,对日期进行一些计算。没有适当的默认构造函数可用并且没有默认的构造函数

这两个错误在我看来:

错误C2512: '日期':没有适当的默认构造函数

智能感知:没有默认构造函数存在类 “日期”

在我已经向该类声明了一个对象:

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    Date d; 
} 

.h文件的构造:

public: 
     Date(int, int, int); 

实施:

Date::Date(int d= 0, int m= 0, int y= 0)// DEFAULT CONSTRUCTOR 
{ 
     d = m = y = 0; 
} 

请帮助我,为什么这个错误出现在哪里?

回答

1

这样做:

在.h文件中构造函数:

public: 
     Date(int=0, int=0, int=0); 

实施:

Date::Date(int d, int m, int y)// DEFAULT CONSTRUCTOR 
{ 
     // Initialize data of this class 
} 

该pr方法的Oototype /声明应该提及默认参数,而不是实现。

0

你可能有添加这样的构造,以及:

public: 
    Date(); 
    Date(int, int, int); 

Date::Date()// DEFAULT CONSTRUCTOR 
{ 
    d = m = y = 0; 
} 
+0

1-我这样做的变化..第二个错误刚刚走了..第一仍然存在。 2-我如何初始化[d,m,y]而不发送它们作为参数 – Mahmoud

+0

当你有这样的代码时会发生什么:'Date d(10,10,2011);'? –

+0

没有任何变化 – Mahmoud

相关问题