Я просто делал простую программу на C ++ для практики, и все время получаю одну и ту же ошибку, которая говорит о том, что у меня нет конструктора по умолчанию. Тем не менее, я попытался явно объявить конструктор по умолчанию, и я все еще получаю точно такую же ошибку. Я не понимаю, в чем проблема. Вот ошибка, которую я получаю от компилятора GNU C ++:
sorting.cpp: в функции int main ():
sorting.cpp: 5: ошибка: не найдена соответствующая функция для вызова Time Time :: Time () ’
sorting.h: 12: примечание: кандидаты: Time :: Time (int, int)
sorting.h: 7: примечание: время :: время (постоянное время &)
А вот код:
sorting.cpp
#include "sorting.h"
int main()
{
Time* courses = new Time[3];
courses[1].setTime(9,30);
courses[2].setTime(10,30);
courses[3].setTime(12,0);
Course this_year(3, courses);
this_year.printTimes();
delete [] courses;
return 0;
}
sorting.h :
#include <<code>iostream>
using namespace std;
class Time
{
private:
int hours;
int minutes;
public:
Time();
Time(int h = 0, int m = 0) ;
void setTime(int h, int m) ;
void printTime();
};
class Course
{
private:
int period_count;
Time* periods;
public:
Course(int count, ...);
void printTimes();
};
Time::()
{
};
Time::Time(int h, int m)
{
hours = h;
minutes = m;
};
void Time::setTime(int h, int m)
{
hours = h;
minutes = m;
return;
};
void Time::printTime()
{
cout << hours << ":" << minutes;
return;
}
Course::Course(int count, Time* the_times)
{
period_count = count;
for (int i = 0; i < count; ++i)
{
periods[i] = the_times[i];
}
}
void Course::printTimes()
{
for(int i = 0; i < count; ++i)
{
periods[i].printTime();
}
return;
}