Нет подходящего конструктора по умолчанию и не существует конструктора по умолчанию - PullRequest
0 голосов
/ 25 августа 2011

Я новичок в C ++ и пытаюсь написать программу «Класс дат», которая делает некоторые вычисления для дат.

Мне кажутся эти две ошибки:

Ошибка C2512:«Дата»: нет подходящего конструктора по умолчанию

IntelliSense: нет конструктора по умолчанию для класса «Дата»

В строке, которую я объявил, объект из класса:

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

Пожалуйста, помогите мне, почему эта ошибка появляется?

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Сделайте это:

Конструктор в файле .h:

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

Реализация:

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

В прототипе / объявлении метода должны быть указаны аргументы по умолчанию, а не реализация.

0 голосов
/ 25 августа 2011

Возможно, вам также понадобится добавить такой конструктор:

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

Date::Date()// DEFAULT CONSTRUCTOR 
{
     d = m = y = 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...