我正在开发一个项目,我需要通过重载加法运算符将两个对象加在一起,其中99%对我有意义,但我无法弄清楚如何进行实际的加法过程。
我的代码目前正在
Time operator+(const Time& t1)
{
int num = this.milliseconds + t1.milliseconds;
Time t(num);
return t;
}
然后我这样称呼它
t4 = t1 + t2;
我认为使用this.milliseconds
将允许我访问t1
的int变量,但它不允许我。
基本上我的问题是如何访问+运算符左侧的时间变量,因为我只传递了操作符+函数的一个Time对象? (T2)
答案 0 :(得分:1)
如果您的operator+
是Time
课程的成员函数,那么当您将this.milliseconds
更改为this->milliseconds
或milliseconds
时,您应该可以访问其字段}}。请注意this
是指针,因此需要->
运算符。
您不必担心operator+
只有一个参数。如果将两个参数运算符重载为类成员,则隐式假定运算符的第一个参数为this
。
您还可以将运算符重载为非成员函数,然后必须指定两个参数:Time operator+(const Time& t1, const Time& t2)
。
还值得一提的是,您的operator+
可能是const
成员函数。