全国统一服务热线

400-6263721

  • 4
  • 2
  • 3

C++编程 this指针和+运算符的重载

  为大家分享到的是主要内容是关于this指针,还有一个就是关于+运算符的重载和+=运算重载很相似。

  在头文件中主要是重载了<<、>>、+运算符,为什么要重载呢? 主要是适应我们程序的要求,如果不重载的话<<需要提供个字符串,而我们要实现的功能是提供一个对象输出它的成员数据。所以需要重载运算符来实现我们目的,至于实现过程大家可以参考上面的代码。 下面来看看主程序代码:

  主程序很简单实例化两个对象,并调用重载之后的+运算符实现两个对象的相加。 

  运行结果输出了两个对象的相加之后的对象的成员数据(一个字符串)。

  笔记:

  我们来重点了解一下作为成员函数重载的+运算符,在较后返回了一个*this。 这里要分为两部分来理解,前面的*(间接访问运算符)和后面this(一个指针),连起来就是访问this指针所指向的内存空间,而this所指向的正好就是对象的存储位置。

  另外this指针只在成员函数中才有意义,并在对象实例化确定对象存储位置时即被确定。 所有的成员函数都默认传入了一个this指针作为参数,指向操作的对象。

  比如class A表示一个A类。a表示A的一个实例对象,它有一个成员函数fun()。 那么当我们在使用a.fun()调用成员函数的时候,编译器其实隐含传递了一个参数,相当于a.fun(&a)。&a就是a对象的地址也就是this所指向的地址。 所以上面所返回的*this其实就是str2,而str2+str1可以理解为str2调用成员函数+(str1),只是成员函数返回的就是对象str2本身(新的str2)。

尊重原创文章,转载请注明出处与链接:http://www.mxiao.cn/1360/new/223415/违者必究! 以上就是福州童程童美少儿编程培训学校 小编为您整理C++编程 this指针和+运算符的重载的全部内容。

推荐课程 / RECOMMENDED COURSE

  • 福州EV3儿童智能机器人编程培训

  • 福州WEDO机器人儿童编程培训

  • 福州儿童人工智能python编程培训

  • 福州信息学奥赛培训

  • 查看更多>>

定制专属于你的课程

10秒登记,定制专属于你的课程方案

填写下表,让专业老师根据你的性格爱好选择最适合你的。

版权所有:福州童程童美少儿编程培训学校

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263721