C ++重载加法运算符以添加对象

时间:2017-09-23 23:11:23

标签: c++ operator-overloading

我正在开发一个项目,我需要通过重载加法运算符将两个对象加在一起,其中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)

1 个答案:

答案 0 :(得分:1)

如果您的operator+Time课程的成员函数,那么当您将this.milliseconds更改为this->millisecondsmilliseconds时,您应该可以访问其字段}}。请注意this是指针,因此需要->运算符。

您不必担心operator+只有一个参数。如果将两个参数运算符重载为类成员,则隐式假定运算符的第一个参数为this

您还可以将运算符重载为非成员函数,然后必须指定两个参数:Time operator+(const Time& t1, const Time& t2)

还值得一提的是,您的operator+可能是const成员函数。