I'm lost. why won't my objects instantate?
Here's the code, compiler errors are below. thanks
class date
{
private:
char *mo;
int day, yr;
public:
date()
{*mo = 0;
day = 0;
yr = 0;}
date (char *m, int d, int y)
{mo = new char[strlen(m)+1];
strcpy(mo, m);
day = d;
yr = y;}
date(const date &obj)
{mo = new char[strlen(obj.mo)+1];
strcpy(mo, obj.mo);
day = obj.day;
yr = obj.yr;}
~date()
{delete[] mo;}
const char *getMo()
{return mo;}
int getDay()
{return day;}
int getYr()
{return yr;}
void operator=(const date &right)
{ delete [] mo;
mo = new char[strlen(right.mo) + 1];
strcpy(mo, right.mo);
day = right.day;
yr = right.yr;}
};
class time:public date
{
private:
int hr, min, sec;
public:
time (int hh, int mm, int ss)
{hr = hh;
min = mm;
sec = ss;}
time(const time &obj)
{hr = obj.hr;
min = obj.min;
sec = obj.sec;}
int getHour()
{return hr;}
int getMin()
{return min;}
int getSec()
{return sec;}
};
int main()
{
time first("January", 1, 2007);
time second("January", 2, 2007);
time reverse = first;
cout << "first date = " << first.getMo();
cout << "/" << first.getDay();
cout << "/" << first.getYr() << endl;
cout << "second date = " << second.getMo();
cout << "/" << second.getDay();
cout << "/" << second.getYr() << endl;
reverse = second;
second = first;
cout << "now first date = " << reverse.getMo();
cout << "/" << reverse.getDay();
cout << "/" << reverse.getYr() << endl;
cout << "now second date = " << second.getMo();
cout << "/" << second.getDay();
cout << "/" << second.getYr() << endl;
Compiler errors:
In function `int main()':
expected `;' before "first"
warning: statement is a reference, not call, to function `time'
expected `;' before "second"
warning: statement is a reference, not call, to function `time'
expected `;' before "reverse"
warning: statement is a reference, not call, to function `time'