Boolan - C++学习笔记 二 - 第一周

C++程序设计(2)

第一周笔记

目录

泛型编程

面向对象

面向对象继承的内存模型

标准库:更多地使用模板编程,较少的用类的继承特性。

1 -转换函数

语法:Operator double ()const{return 1.0;}

从本身转为别的类型

下图所示:黄色部分为转换函数:成员函数将Fraction转换为double类型


Non – explicit one argument ctor:这种构造函数可以将别的东西A转换为类对象CX。

即通过将A实体构造成CX类的对象。

两种class:

1 point-like-class

1、智能指针:需要实现*->运算符重载。

C++:->具有特殊作用,Z->b()中的->符号作用在Z上之后,继续用->作用下去。

2、迭代器,用来遍历容器,除了实现*->外,还需要实现++ -- ==!=等操作符重载。

2 fuction-like-class

在类内部具有对()运算符的重载


3 Namespace:

作用:把一些东西包装起来,用以区分不同人开发出的代码,使得彼此不影响。

4类模板

模板不同于重载,是一种半成品,在编译的时候替换T为具体的类型。

语法:

使用:

5函数模板

使用比类模板更简单。

注意:<要能编译通过的前提条件是T类型的变量可以用<操作符来操作。因此如果T类型为自己设计的类,需要重载运算符<.

6成员模板

多见于标准库模板类的构造函数。智能指针模拟up-cast;


7 specializtion特化

特化是由一般到特殊的生物进化方式。在模板中指的是更具体的设计,将T用具体的类型再重新设计一次。是指由T到T的子集的过程。

Eg:将T用int替换得到新的具体的函数或类A或模板。

注意:这里A可能是具体的函数或类,也有可能是范围更小的模板类或函数。

8偏特化(个数上的偏特化,和范围上的偏特化(下图))


9模板模板参数(template

template param)


10数量不等的模板参数


最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容