1.泛型编程和面向对象编程,是c++的技术主流。
2.转换函数:
2.1
这就是一个转换函数,函数名前后有空格,没有参数,没有返回类型。这个const通常都需要加,因为我们不需要改变数据,这个例子中就是将分子和分母直接除等到一个double。
例子:
定义了一个对象f,再将它转换为0.6.
这个构造函数比较特殊
编译器去找+这个操作符的函数,但是没找到,编译器就去找能否将4转换为fraction这个类,找到了上面的这个特殊函数,转换为4/1 ,然后进行相加。
但是二者并存的情况下:
在想上面这个就晕行不通,编译器两条路都可以走的通,就会报错,不行。
可以加上explict进行修饰,编译器就不会将4转换为4/1了。
3。智能指针:
3.1产生的对象像一个指针,
对象里面肯定有一个真正的指针,里面一定要写*和->和普通指针一样去理解。
4.迭代器。
5.类像函数。
对象可以接收小括号,任意的类型,名字为pair(针对第二个源代码),使用例子:struct select1st <pair>()() ,第一个小括号是用来产生临时变量,第二个才是调用函数。类里面有这种()的重载。
6.类的模板。
7.函数模板
这个比较模板里面有一个<这个符号,所以我们在定义类的时候需要定义出这个操作符重载。
8.成员模板。
9.模板特化。
上面是泛化,没有定义的,下面是特化。
偏特化:
个数上的偏,这个模板有两个模板参数,绑定其中一个。
范围上的偏化,范围缩小。就譬如缩小到指针范围。
10.模板模板参数。