首页>学校动态>C++编程 this指针和+运算符的重载

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

来源:郑州小码王少儿编程时间:2023/11/25 14:07:36

  为大家分享到的是主要内容是关于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)。

上一页 下一页

推荐课程更多>

立即申请体验课

关于我们 | 联系我们 | 郑州小码王少儿编程

版权所有:培训指南

  • 在线咨询
  • 电话咨询
  • 预约试听