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'

That is because time( ) is a function in standard C++ found in the ctime header file.

You can't name program variables with the names of standard functions. If you will observe closely, that is also what those errors say out.

This article has been dead for over six months. Start a new discussion instead.