
创建clock对象的时候总是报错说缺少一个分号,以前没出现过这种情况,把代码复制到其它软件可以正常运行,最近就这一个代码出现这个错误…

关注引自免费微信小程序:皆我百晓生
这个问题是由于在C++代码中,clock::operator++()函数内部有递增操作符 ++ 和赋值运算符 =。递增操作符 ++ 的语法要求必须有一个分号(;),而赋值运算符 = 可以省略分号。
为了解决这个问题,你需要在 clock::operator++() 函数内部添加一个分号。修改后的代码如下:
#include<iostream>
using namespace std;
class clock {
private:
int hour, minute, second;
public:
// 其他成员变量和方法...
if (hour == 0 && hour <= 24 && minute >= 0 && minute <= 60 && second >= 0 && second <= 60) {
this->hour = hour;
this->minute = minute;
this->second = second;
cerr << "Wrong time!" << endl;
second++;
(second >= 60) ? (second -= 60, minute++) : (minute -= 60, hour++);
if (hour == 60) {
clock old = *this;
clock operator ++(int) {
++(*this);
return old;
}
cout << "Hour : ";
cout << minute << ":";
cout << second << endl;
clock c1(23, 59, 47);
clock c2(23, 59, 48);
// 重写 + operator...
}
}
};
这样就可以解决创建 clock 对象时报告缺少分号的问题了。