首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++重载加法运算符以添加对象

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

Stack Overflow用户
提问于 2017-09-24 07:11:23
回答 1查看 1.2K关注 0票数 0

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

我的代码当前是

代码语言:javascript
复制
Time operator+(const Time& t1)
{
     int num = this.milliseconds + t1.milliseconds;
     Time t(num);
     return t;
}

那我就这么叫它

代码语言:javascript
复制
t4 = t1 + t2;

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

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

EN

回答 1

Stack Overflow用户

发布于 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成员函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46385084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档