泛型编程(Generic Programming)
-
虚函数 -> 含有虚函数的类就是抽象类
-
编译(
compile) -
链接(
link)
转换函数(Conversion function)
例如将小数转成分数,就是一个转换函数
调用:
Fraction f(3, 5);
double d=4+f; // 编译器先去找是否定义+操作符重载进行+的操作.如果没有再去找是否定义f的转换
// double()将f转为0.6再进行相加
另一个设计:
调用:
Fraction f(3, 5);
Fraction d2=f+4; // 这个加法会先调用Fraction构造函数将4转为Fraction(4, 1)
// 然后调用operator+
如果conversion function和non-explicit-one-argument ctor并存那么编译会报错 -> 因为调用的解决方式有两种.就会歧义,就会报错
explict
指定告诉编译器这里仅作为构造函数的时候才可以使用
示例代码:
调用:
Fraction f(3, 5);
Fraction d2=f+4; // 因为已经声明成了explicit,所以运行时候会报错 -> conversion from 'double' to 'Fraction' reques
It's a lonely road!!!

浙公网安备 33010602011771号