首页 文章

在类定时器中重载前缀和后缀增量 . 调试时出现问题

提问于
浏览
1

我需要为类Timer重载增量 . 我班上的成员都是分钟和秒 .

#include <iostream>
#include <conio.h>
using namespace std;

class Timer
{
private:
  int minutes;           
  int seconds;            

public:

  Time(){
     minutes = 0;
     seconds = 0;

  }
  Time(int m, int s){
     minutes = m;
     seconds = s;

  }

  void displayTime()
  {
     cout << "M: " << hours << " S:" << minutes <<endl;
  }

  Time operator++ ()  
  {
     ++seconds;          
     if(seconds >= 60)  
     {
        ++minutes;
        seconds -= 60;
     }
     return Time(minutes, seconds);
  }

  Time operator++( int )         
  {

     Time T(minutes, seconds);

     ++seconds;                    
     if(seconds >= 60)
     {
        ++minutes;
        seconds -= 60;
     }

     return T; 
  }
  };
  int main()
  {
  Time T1(18, 23), T2(19,12);

  ++T1;                    
  T1.displayTime();       
  ++T1;                   
  T1.displayTime();      

  T2++;                  
  T2.displayTime();      
  T2++;                   
  T2.displayTime();       
  _getch()
  }

当我调试时,它说

编译器:默认编译器构建Makefile:“C:\ Dev-Cpp \ Makefile.win”执行make ... make.exe -f“C:\ Dev-Cpp \ Makefile.win”所有g .exe -c main . cpp -o main.o -I“C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include”-I“C:/ Dev-Cpp / include / c /3.4.2/backward”-I “C:/ Dev-Cpp / include / c /3.4.2/mingw32”-I“C:/ Dev-Cpp / include / c /3.4.2”-I“C:/ Dev-Cpp / include”main . cpp:13:错误:ISO C禁止声明没有类型的“时间”

main.cpp:18:错误:ISO C禁止声明没有类型的“时间”
main.cpp:29:错误:ISO C禁止声明没有类型的“时间”

main.cpp:29:错误:预期;'在“运营商”之前 main.cpp:40:错误:预期;'在“时间”之前
main.cpp:40:错误:ISO C禁止声明没有类型的“时间”
main.cpp:40:错误:预期`;'在“运营商”之前

main.cpp:54:错误:预期;'在'}'标记之前 main.cpp:在成员函数void Timer :: displayTime()'中:
main.cpp:26:错误:'小时'未声明(首次使用此功能)

main.cpp:26:错误:(每个未声明的标识符仅针对它出现的每个函数报告一次 . )
main.cpp:在全球范围内:
main.cpp:56:错误:可能无法在返回类型中定义新类型
main.cpp:56:错误:无关的int'被忽略 main.cpp:56:错误:main'必须返回int' main.cpp:在函数int main(...)'中:
main.cpp:57:错误:“时间”未声明(首次使用此功能)
main.cpp:57:错误:预期;'在“T1”之前 main.cpp:59:错误:T1'未声明(首先使用此功能)
main.cpp:64:错误:T2'未声明(首先使用此函数) main.cpp:69:错误:预期;'在'}'标记之前

make.exe:*** [main.o]错误1

执行终止

1 回答

  • 1

    对象应该是Timer not Time类型 . 尝试匹配类名和构造函数名称 .

    小时成员未在displayTime方法中定义 .

    void displayTime()
      {
         cout << "M: " << minutes << " S:" << seconds <<endl;
      }
    

    请参考以下代码http://ideone.com/m50w2r

相关问题