1.泛型编程和面向对象编程,是c++的技术主流。

2.转换函数:

2.1Boolan c++学习第四周笔记

这就是一个转换函数,函数名前后有空格,没有参数,没有返回类型。这个const通常都需要加,因为我们不需要改变数据,这个例子中就是将分子和分母直接除等到一个double。

例子:

Boolan c++学习第四周笔记

定义了一个对象f,再将它转换为0.6.

Boolan c++学习第四周笔记

这个构造函数比较特殊

Boolan c++学习第四周笔记

编译器去找+这个操作符的函数,但是没找到,编译器就去找能否将4转换为fraction这个类,找到了上面的这个特殊函数,转换为4/1 ,然后进行相加。

但是二者并存的情况下:

Boolan c++学习第四周笔记

在想上面这个就晕行不通,编译器两条路都可以走的通,就会报错,不行。

可以加上explict进行修饰,编译器就不会将4转换为4/1了。

Boolan c++学习第四周笔记

3。智能指针:

3.1产生的对象像一个指针,

Boolan c++学习第四周笔记

对象里面肯定有一个真正的指针,里面一定要写*和->和普通指针一样去理解。

4.迭代器。

5.类像函数。

Boolan c++学习第四周笔记

Boolan c++学习第四周笔记

对象可以接收小括号,任意的类型,名字为pair(针对第二个源代码),使用例子:struct select1st <pair>()()  ,第一个小括号是用来产生临时变量,第二个才是调用函数。类里面有这种()的重载。

6.类的模板。

Boolan c++学习第四周笔记


7.函数模板

Boolan c++学习第四周笔记

这个比较模板里面有一个<这个符号,所以我们在定义类的时候需要定义出这个操作符重载。

8.成员模板。

Boolan c++学习第四周笔记


Boolan c++学习第四周笔记Boolan c++学习第四周笔记

9.模板特化。

Boolan c++学习第四周笔记

上面是泛化,没有定义的,下面是特化。

偏特化:

个数上的偏,这个模板有两个模板参数,绑定其中一个。

范围上的偏化,范围缩小。就譬如缩小到指针范围。

Boolan c++学习第四周笔记

10.模板模板参数。

Boolan c++学习第四周笔记



相关文章: