没有合适的默认构造函数可用,也不存在默认构造函数

No appropriate default constructor available and no default constructor exist

本文关键字:构造函数 默认 不存在      更新时间:2023-10-16

我是c++新手,想写一个"日期类";对日期进行一些计算的程序。

在我看来这两个错误:

错误C2512: 'Date':没有合适的默认构造函数

智能感知:没有默认构造函数存在于类"Date"

在我从类中声明一个对象的那行:

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;
}

请帮助我,为什么会出现这个错误?

这样做:

.h文件中的构造函数:

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

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

方法的原型/声明应该提到默认参数,而不是实现。

您可能还需要添加这样的构造函数:

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