我正在做一个项目,我需要通过重载加法运算符将两个对象相加在一起,其中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+函数?(t2)
发布于 2017-09-24 07:22:04
如果您的operator+是Time类的成员函数,那么当您将this.milliseconds更改为this->milliseconds或仅更改为milliseconds时,您应该能够访问它的字段。请注意,this是一个指针,因此它需要->运算符。
您不必担心operator+只有一个参数。如果将一个双参数运算符作为类成员重载,则会隐式假设该运算符的第一个参数为this。
您还可以将操作符重载为非成员函数,然后必须像这样指定两个参数:Time operator+(const Time& t1, const Time& t2)。
值得一提的是,您的operator+可以是一个const成员函数。
https://stackoverflow.com/questions/46385084
复制相似问题