这里是运算符函数(inSeconds的类型为int)
const Time Time::operator +( const Time& t) const {
return Time(inSeconds_ + t.inSeconds_);
}
但我还需要使用此运算符来使用此代码。 (t1是时间的实例,12是整数),没有交换顺序中的值)
Time t(12 + t1);
请帮助我,对不起,如果这对新手来说毫无意义。
感谢
答案 0 :(得分:1)
Time
,其中int
(代表秒数)作为参数。以下代码适用于我:
struct Time
{
Time(int sec) : inSeconds_(sec) {}
int inSeconds_;
};
Time operator+(Time const& lhs, Time const& rhs)
{
return Time(lhs.inSeconds_ + rhs.inSeconds_);
}
int main()
{
Time t1(10);
Time t2(12 + t1);
}
答案 1 :(得分:0)
您需要的是一个自由函数运算符。
struct Time {
// ...
};
// note: outside the class
Time operator+(const Time& left, const int& right)
{
return Time( /* whatever should go here */);
}
总是喜欢将二元运算符编写为自由函数,这些函数根据类中的实用方法开展工作 - 您的生活将更加轻松。