侯捷-C++面向对象高级开发(操作符重载与临时对象)

1.操作符重载与临时对象

任何成员函数有一个隐藏的this pointer指向,指向调用者。

传递者无需知道接收者是以什么形式接收

就比如下面方框内c1以value方式传递,接收者以引用方式接收

如果下面方框的操作那么成员函数的inline写成void也没问题,但是如果是右边方框的内容就不行

complex::function...//这种是成员函数
function...   //这种是全局函数

全局函数与成员函数的区别在于后者有this pointer

操作之后的结果存下来之后会释放

注:typename()就是要创建临时对象

右边方框中前两行黄色的执行到空的那行就不见了

这里不能返回引用

操作符有两种写法一种是成员函数写法一种是非成员函数的写法

由于要支持连串的输出所以返回的要用引用而不能void

总结写一个类的注意事项:

  • 会用构造函数的initialization list
  • 函数要不要加const
  • 参数传递尽量用引用,还要考虑要不要加const
  • return 的时候by value还是by reference
  • 数据放在private,函数放在public

侯捷-C++面向对象高级开发(操作符重载与临时对象)相关推荐

  1. 侯捷-C++面向对象高级开发(头文件与类的声明,构造函数,参数传递与返回值)

    侯捷-C++面向对象高级开发 1.头文件与类的声明 Object Based:面对的是单一的class的设计 Object Oriented:面对的是多重classes的设计,classes和clas ...

  2. 侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构)

    侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构) 三大函数:拷贝构造,拷贝赋值,析构 第一个是拷贝构造,第二个是拷贝赋值 编译器有一套默认的东西实现这俩东西,可用到complex的实 ...

  3. 侯捷 C++面向对象高级开发(下)笔记整理

    C++面向对象高级开发(下) 一.导读 (1)泛型编程和面向对象编程分属不同的思维, (2)由继承关系所形成的对象模型,包含this指针,vptr指针,vtbl虚表,虚机制,以及虚函数造成的多态. 二 ...

  4. 【C++】侯捷C++面向对象高级编程(下)

    转换函数(conversion function) 可以把"这种"东西,转化为"别种"东西. 即Fraction --> double class Fra ...

  5. 【C++】侯捷C++面向对象高级编程(上)

    C++面向对象高级编程 前言 C++ Programs代码基本形式 文件类型 头文件写法 头文件布局 class1--complex 类的声明 inline--内联函数 class访问级别(acces ...

  6. 173-C++面向对象高级开发-上(侯捷)

    1.c++编程简介 类中带有指针和类中不带有指针: 2.头文件与类的声明 c++将数据和函数包在一起. 经典的class分类,带指针和不带指针的,具有代表性的就是我们写的 两个案例: 复数案例和字符案 ...

  7. 【侯捷面向对象高级开发】第一部分:基于对象 Object Based

    第一部分:基于对象 Object Based 以良好的方式编写C++ class class without pointer members (Example Complex) class with ...

  8. C++面向对象高级开发(侯捷)——堆、栈与内存管理

    stack(栈),heap(堆) Stack:是存在于某作用域(scope)的一个内存空间(memory space).例如当你调用函数,函数本身即会形成一个stack用来放置它所接收的参数,返回地址 ...

  9. 第一讲 防御式编程—————面向对象高级开发

    1 防御式编程 例如在定义头文件时,都使用 #ifndef #define //... #endif 为的就是防止头文件被重复包含.

最新文章

  1. 2015级C++第10、11周程序阅读(补充) 继承和派生
  2. 测量左右磁极的原片磁铁
  3. C语言再学习 -- 结构和其他数据形式
  4. vm_comcat报错 - 数字或值错误 : 字符串缓冲区太小
  5. 超好看的科学科普书,孩子大人都可以看!
  6. linux查看java虚拟机内存_深入理解java虚拟机(linux与jvm内存关系)
  7. JAVA设置输入数据范围,如何使用Apache POI(SXSSF)为特定单元格设置数据(数字)格式区域设置?...
  8. iOS TableView reloadData结束
  9. 微信小程序自动定位城市
  10. 安卓相机如何设置对焦模式
  11. 永磁同步电机PI控制器设计
  12. 磨金石学院来报道,电影剪辑有哪些技巧呢?如何让你的剪辑片段更为精彩。
  13. 10.5 Parameterize Method 让方法携带参数
  14. python笑脸猫图案_酷叮猫编程课堂:python生成字符画
  15. fatal error C1083: 无法打开包括文件: “afx.h”: No such file or directory
  16. 支付宝h5网页的支付
  17. 案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程。 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下:
  18. 输入日期查星座 php,php根据日期显示所在星座的方法,php日期所在星座_PHP教程...
  19. 服务器的噪音会影响听力吗,噪声对听力的三大影响
  20. Qt QNetworkAccessManager请求返回reply内存泄漏

热门文章

  1. 高防IP防护效果怎么样?甜甜告诉您
  2. 【JZOJ4598】准备食物
  3. 微信订阅号小技巧及相关知识普及
  4. 二建考生速看 拿到二级建造师证书后该如何进行注册?
  5. 前端三刺客---JS(WebAPI)
  6. 泪滴(teardrop)
  7. 关于微信小程序的多选和全选实现
  8. JavaScript框架篇——zepto
  9. 【洛谷】P3387 【模板】缩点
  10. 汉语拼音拼读的小技巧