我正在一个项目中,我需要通过重载加法运算符将两个对象加在一起,其中99%对我来说很有意义,但我不知道如何进行实际的加法过程。

我的代码目前是

Time operator+(const Time& t1)
{
     int num = this.milliseconds + t1.milliseconds;
     Time t(num);
     return t;
}


然后我这样称呼它

t4 = t1 + t2;


我以为使用this.milliseconds将允许我访问t1的int变量,但不允许我使用。

基本上,我的问题是,由于我只将operator +函数传递给Time的一个对象,因此如何访问+运算符左侧的时间变量? (t2)

最佳答案

如果您的operator+Time类的成员函数,则在将this.milliseconds更改为this->milliseconds或仅更改milliseconds时,您应该能够访问其字段。请注意,this是一个指针,因此它需要->运算符。

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

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

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

关于c++ - C++重载加法运算符以添加对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46385084/

10-11 22:40
查看更多