类型转换运算符conversion operator
类型转换是操作符重载的一种形式,是类的特殊成员,上文是一个分数类,调用4+f是就将f转换为通过隐式调用类型转换运算符double类型。
operator type() const;
一个类型转换操作函数必须式类的成员函数;他不能声明返回类型,形参列表也必须为空。类型转换函数通常应该式const.
explicit是c++11新标准引入的显示类型转换运算符,上面应为没有在函数前声明,所以隐式的调用了类型转换运算符,这个例子种f换成double类型是有利的,但是这总转换并总是我们所想要的。
这种就出现的二义性的现象,不知道调用那个函数,是调用类型转换函数把f换成double算出结果,再将d2转成Fraction。还是想把4换成Fraction再调用+的重载函数来计算。
c++11就提供了显示的类型转换运算符便于我们解决这个问题
再有类型转换是我们要显示的声明用才可以进行类型转换。
指针的类
将指针通过类组合产生新的更高功能的指针
关于指针和引用
引用是一种指针实现的类型,与指针相比他不是一个对象,说以不可以声明包含引用的数组,但指针可以。引用想当与变量的别名,必要要先绑定,从诞生到消亡都不可以改变对象。指针可以改变对象,指针更加的灵活。