类型转换运算符使用方法
C中,只支持:
int i = 1;
float f = (float)i;
C++中,为兼容C,同样支持上述写法,
但是,推荐新写法:
float f = float(i);
类型转换函数
一般形式如下:
operator type() const;
需注意
- 必须是类的成员函数;
- 不能声明返回类型,形参列表也必须为空;
但是,不能声明,不代表没有返回类型:
class SmallInt {
public:
SmallInt(int i = 0) :val(i) {
if (i < 0 || i>255)
throw std::out_of_range("Bad SmallInt value");
}
operator int() const { return val; }
//该函数将SmallInt类型的对象转换为int型
private:
std::size_t val;
};
- 通常为const
其他
类型转换函数旨在将我们自己定义的类型转换为其他类型,
若想要其他类型转换为我们自己定义的类型,应该重载“=”。
参考资料:
《C++ primer》第五版