侯捷面向对象高级编程(二)

转换函数

  • 转换函数没有返回值,返回值就是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

侯捷面向对象高级编程(二)相关推荐

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

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

  2. 一、C++面向对象高级编程(上) (侯捷)

    侯捷 C++八部曲笔记汇总 - - - 持续更新 ! ! ! 一.C++ 面向对象高级开发 1.C++面向对象高级编程(上) 2.C++面向对象高级编程(下) 二.STL 标准库和泛型编程 1.分配器 ...

  3. 一、C++面向对象高级编程(下) (侯捷)

    侯捷 C++八部曲笔记汇总 - - - 持续更新 ! ! ! 一.C++ 面向对象高级开发 1.C++面向对象高级编程(上) 2.C++面向对象高级编程(下) 二.STL 标准库和泛型编程 1.分配器 ...

  4. 侯捷C++课程笔记01: 面向对象高级编程(上)

    本笔记根据侯捷老师的课程整理而来:C++面向对象高级编程(上) pdf版本笔记的下载地址: 笔记01_面向对象高级编程(上),排版更美观一点(访问密码:3834) 侯捷C++课程笔记01: 面向对象高 ...

  5. 侯捷C++课程笔记02: 面向对象高级编程(下)

    本笔记根据侯捷老师的课程整理而来:C++面向对象高级编程(下) pdf版本笔记的下载地址: 笔记02_面向对象高级编程(下),排版更美观一点(访问密码:3834) 侯捷C++课程笔记02: 面向对象高 ...

  6. 侯捷老师-02面向对象高级编程

    侯捷老师-02面向对象高级编程 1.Static使用 Static本质 Static使用 Static使用举例-单例模式 Static使用举例-单例模式(改进) 2.模板使用 Class Templa ...

  7. 侯捷老师-01面向对象高级编程

    侯捷老师-01面向对象高级编程 01面向对象高级编程 1.编程习惯 总结 2.三大函数 2.1 拷贝构造函数.拷贝赋值函数.析构函数(带有指针的类) 2.2 构造函数.析构函数 局部变量.全局变量 3 ...

  8. 侯捷C++视频笔记——C++面向对象高级编程(上)

    C++面向对象高级编程(上) 01.C++编程简介 学习目标: 1.学习良好的编写C++类的形式,包括两种,分别是无指针成员类(如Complex)和有指针成员类(如String) 2.学习类之间的关系 ...

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

    C++面向对象高级编程(上) 文章目录 C++面向对象高级编程(上) 一.学习目标 1.1 关于C++ 1.1.1 C++的历史 1.1.2 C++演化 1.1.3 C vs C++ 二. C++类的 ...

最新文章

  1. plus flink add.php,不想要dede5.7织梦链只要修改模板里几行代码
  2. Wince下定制开机自启动程序
  3. linux为什么要交换内存,Linux系统中交换内存是什么?
  4. vb冒泡排序法流程图_VB算法-冒泡排序教案
  5. Nginx应用案例分享:压力测试
  6. java 字符串转成图片_java 转换图片为字符串,将字符串转换成图片显示
  7. Python笔记-BeautifulSoup基本用法(通过标签及class定位元素)
  8. 比小米12 Pro还好?Redmi K50 Pro+屏幕细节曝光:2K高分直屏
  9. Atiitt uke发展战略规划十三五规划纲要 attilax总结
  10. 计算机硬盘的文件怎么删除文件,如何彻底删除文件?彻底删除硬盘数据的几种方法-电脑教程...
  11. Python学习笔记——入门(IDLE的使用、标准库和模块、测试和调试、虚拟编程环境)
  12. Python+Pyecharts实现1995~2020世界人口分析报告
  13. Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用
  14. limbo模拟器android版,limbo模拟器app[安卓虚拟机] v0.9.8 Android版
  15. 程序猿是怎么找对象的
  16. 如何在Ubuntu 20.04上安装Kvm
  17. 印钞能力一般的“随心飞” 为何让航空公司前仆后继?
  18. 朋友说要被他女朋友烦死了,竟然是因为“小视频”
  19. 在C#中使用ZBar识别条形码
  20. 基于Doc2vec训练句子向量

热门文章

  1. linux系统死机窗口移动不了怎么办,Linux 操作系统死机故障处理方法总结
  2. matlab drawnow连成曲线,precision recall曲线Matlab实现
  3. array python 交集_Python基础(二)——列表和元组
  4. android界面布局错位,IOS 浏览器页面布局错位(如:点不到)的分析与解决
  5. C++ 面向对象(四)—— 多态 (Polymorphism)
  6. VC命令行编译参数介绍
  7. python多线程编程(6): 队列同步
  8. Mac 下隐藏显示隐藏文件
  9. Linux 驱动编译报错:error: macro __DATE__ might prevent reproducible builds [-Werror=date-time]
  10. react学习(48)--编辑回显用moment处理