我需要为类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 回答
对象应该是Timer not Time类型 . 尝试匹配类名和构造函数名称 .
小时成员未在displayTime方法中定义 .
请参考以下代码http://ideone.com/m50w2r