侯捷-C++面向对象高级开发(操作符重载与临时对象)
侯捷-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++面向对象高级开发(操作符重载与临时对象)相关推荐
- 侯捷-C++面向对象高级开发(头文件与类的声明,构造函数,参数传递与返回值)
侯捷-C++面向对象高级开发 1.头文件与类的声明 Object Based:面对的是单一的class的设计 Object Oriented:面对的是多重classes的设计,classes和clas ...
- 侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构)
侯捷-C++面向对象高级开发(三大函数:拷贝构造,拷贝赋值,析构) 三大函数:拷贝构造,拷贝赋值,析构 第一个是拷贝构造,第二个是拷贝赋值 编译器有一套默认的东西实现这俩东西,可用到complex的实 ...
- 侯捷 C++面向对象高级开发(下)笔记整理
C++面向对象高级开发(下) 一.导读 (1)泛型编程和面向对象编程分属不同的思维, (2)由继承关系所形成的对象模型,包含this指针,vptr指针,vtbl虚表,虚机制,以及虚函数造成的多态. 二 ...
- 【C++】侯捷C++面向对象高级编程(下)
转换函数(conversion function) 可以把"这种"东西,转化为"别种"东西. 即Fraction --> double class Fra ...
- 【C++】侯捷C++面向对象高级编程(上)
C++面向对象高级编程 前言 C++ Programs代码基本形式 文件类型 头文件写法 头文件布局 class1--complex 类的声明 inline--内联函数 class访问级别(acces ...
- 173-C++面向对象高级开发-上(侯捷)
1.c++编程简介 类中带有指针和类中不带有指针: 2.头文件与类的声明 c++将数据和函数包在一起. 经典的class分类,带指针和不带指针的,具有代表性的就是我们写的 两个案例: 复数案例和字符案 ...
- 【侯捷面向对象高级开发】第一部分:基于对象 Object Based
第一部分:基于对象 Object Based 以良好的方式编写C++ class class without pointer members (Example Complex) class with ...
- C++面向对象高级开发(侯捷)——堆、栈与内存管理
stack(栈),heap(堆) Stack:是存在于某作用域(scope)的一个内存空间(memory space).例如当你调用函数,函数本身即会形成一个stack用来放置它所接收的参数,返回地址 ...
- 第一讲 防御式编程—————面向对象高级开发
1 防御式编程 例如在定义头文件时,都使用 #ifndef #define //... #endif 为的就是防止头文件被重复包含.
最新文章
- 2015级C++第10、11周程序阅读(补充) 继承和派生
- 测量左右磁极的原片磁铁
- C语言再学习 -- 结构和其他数据形式
- vm_comcat报错 - 数字或值错误 : 字符串缓冲区太小
- 超好看的科学科普书,孩子大人都可以看!
- linux查看java虚拟机内存_深入理解java虚拟机(linux与jvm内存关系)
- JAVA设置输入数据范围,如何使用Apache POI(SXSSF)为特定单元格设置数据(数字)格式区域设置?...
- iOS TableView reloadData结束
- 微信小程序自动定位城市
- 安卓相机如何设置对焦模式
- 永磁同步电机PI控制器设计
- 磨金石学院来报道,电影剪辑有哪些技巧呢?如何让你的剪辑片段更为精彩。
- 10.5 Parameterize Method 让方法携带参数
- python笑脸猫图案_酷叮猫编程课堂:python生成字符画
- fatal error C1083: 无法打开包括文件: “afx.h”: No such file or directory
- 支付宝h5网页的支付
- 案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程。 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下:
- 输入日期查星座 php,php根据日期显示所在星座的方法,php日期所在星座_PHP教程...
- 服务器的噪音会影响听力吗,噪声对听力的三大影响
- Qt QNetworkAccessManager请求返回reply内存泄漏