侯捷面向对象高级编程(二)
侯捷面向对象高级编程(二)
转换函数
- 转换函数没有返回值,返回值就是
double
即函数名,不需要自己写 - 因为转换函数一般不会改变其中内容,所以要加
const
限定
- 两条路都可以走,就回产生歧义,报错
explict
禁止自动转换,于是4无法转转换为Fraction
pointer-like cliasses
->
作用之后还能继续作用不会消耗掉*sp
中的*
作用于sp
上后返回*px
,而->
作用后不会消失
function-like classes,仿函数
namespace 命名空间
放在不同命名空间,让彼此没有关联
class template
function template
member template
即使T1,T2确定了,U1,U2也可以变
可以嵌套,但是p.first
必须能给first
赋值,即U1,U2是T1,T2的子类
再举一个例子,同理
specialization 模板特化
我的理解就是,对不同的类型,采取有不同的行为
partial specialization 模板偏特化
事先绑定一个参数
- 如果不使用指针就用上面的情况 obj1
- 如果使用指针就用右下的情况 obj2
数量不定的模板参数
print
是递归调用,能打印出全部元素
void print() // 最后一个元素打印时调用
{}
template<typename T ,typename... Types>
void print(const T& first,const Types&... args)
{std::cout << first<<std::endl;print(args...);
}
int main()
{print(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
}
虚函数,虚指针
一种理解:继承中函数继承的是调用权
const
函数后面加const
只用于成语函数
COW: copy on write
侯捷面向对象高级编程(二)相关推荐
- 【侯捷面向对象高级开发】第一部分:基于对象 Object Based
第一部分:基于对象 Object Based 以良好的方式编写C++ class class without pointer members (Example Complex) class with ...
- 一、C++面向对象高级编程(上) (侯捷)
侯捷 C++八部曲笔记汇总 - - - 持续更新 ! ! ! 一.C++ 面向对象高级开发 1.C++面向对象高级编程(上) 2.C++面向对象高级编程(下) 二.STL 标准库和泛型编程 1.分配器 ...
- 一、C++面向对象高级编程(下) (侯捷)
侯捷 C++八部曲笔记汇总 - - - 持续更新 ! ! ! 一.C++ 面向对象高级开发 1.C++面向对象高级编程(上) 2.C++面向对象高级编程(下) 二.STL 标准库和泛型编程 1.分配器 ...
- 侯捷C++课程笔记01: 面向对象高级编程(上)
本笔记根据侯捷老师的课程整理而来:C++面向对象高级编程(上) pdf版本笔记的下载地址: 笔记01_面向对象高级编程(上),排版更美观一点(访问密码:3834) 侯捷C++课程笔记01: 面向对象高 ...
- 侯捷C++课程笔记02: 面向对象高级编程(下)
本笔记根据侯捷老师的课程整理而来:C++面向对象高级编程(下) pdf版本笔记的下载地址: 笔记02_面向对象高级编程(下),排版更美观一点(访问密码:3834) 侯捷C++课程笔记02: 面向对象高 ...
- 侯捷老师-02面向对象高级编程
侯捷老师-02面向对象高级编程 1.Static使用 Static本质 Static使用 Static使用举例-单例模式 Static使用举例-单例模式(改进) 2.模板使用 Class Templa ...
- 侯捷老师-01面向对象高级编程
侯捷老师-01面向对象高级编程 01面向对象高级编程 1.编程习惯 总结 2.三大函数 2.1 拷贝构造函数.拷贝赋值函数.析构函数(带有指针的类) 2.2 构造函数.析构函数 局部变量.全局变量 3 ...
- 侯捷C++视频笔记——C++面向对象高级编程(上)
C++面向对象高级编程(上) 01.C++编程简介 学习目标: 1.学习良好的编写C++类的形式,包括两种,分别是无指针成员类(如Complex)和有指针成员类(如String) 2.学习类之间的关系 ...
- 【C++】侯捷:C++面向对象高级编程(上)
C++面向对象高级编程(上) 文章目录 C++面向对象高级编程(上) 一.学习目标 1.1 关于C++ 1.1.1 C++的历史 1.1.2 C++演化 1.1.3 C vs C++ 二. C++类的 ...
最新文章
- plus flink add.php,不想要dede5.7织梦链只要修改模板里几行代码
- Wince下定制开机自启动程序
- linux为什么要交换内存,Linux系统中交换内存是什么?
- vb冒泡排序法流程图_VB算法-冒泡排序教案
- Nginx应用案例分享:压力测试
- java 字符串转成图片_java 转换图片为字符串,将字符串转换成图片显示
- Python笔记-BeautifulSoup基本用法(通过标签及class定位元素)
- 比小米12 Pro还好?Redmi K50 Pro+屏幕细节曝光:2K高分直屏
- Atiitt uke发展战略规划十三五规划纲要 attilax总结
- 计算机硬盘的文件怎么删除文件,如何彻底删除文件?彻底删除硬盘数据的几种方法-电脑教程...
- Python学习笔记——入门(IDLE的使用、标准库和模块、测试和调试、虚拟编程环境)
- Python+Pyecharts实现1995~2020世界人口分析报告
- Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用
- limbo模拟器android版,limbo模拟器app[安卓虚拟机] v0.9.8 Android版
- 程序猿是怎么找对象的
- 如何在Ubuntu 20.04上安装Kvm
- 印钞能力一般的“随心飞” 为何让航空公司前仆后继?
- 朋友说要被他女朋友烦死了,竟然是因为“小视频”
- 在C#中使用ZBar识别条形码
- 基于Doc2vec训练句子向量
热门文章
- linux系统死机窗口移动不了怎么办,Linux 操作系统死机故障处理方法总结
- matlab drawnow连成曲线,precision recall曲线Matlab实现
- array python 交集_Python基础(二)——列表和元组
- android界面布局错位,IOS 浏览器页面布局错位(如:点不到)的分析与解决
- C++ 面向对象(四)—— 多态 (Polymorphism)
- VC命令行编译参数介绍
- python多线程编程(6): 队列同步
- Mac 下隐藏显示隐藏文件
- Linux 驱动编译报错:error: macro __DATE__ might prevent reproducible builds [-Werror=date-time]
- react学习(48)--编辑回显用moment处理