operator用于类型转换函数,用来定义隐式的类型转换
类型转换函数的特征:
1) 型转换函数定义在源类中;
2) 须由 operator 修饰,函数名称是目标类型名或目标类名;
3) 函数没有参数,没有返回值,但是有return语句,在return语句中返回目标类型数据或调用目标类的构造函数。
类型转换函数主要有两类:
1) 对象向基本数据类型转换;
2) 对象向不同类的对象的转换;
举个例子:
class TimeStep
{
public:
TimeStep(float time = 0.0f)
: m_Time(time)
{}
operator float() const { return m_Time; }
float GetSeconds() const { return m_Time; }
private:
float m_Time;
};
TimeStep ts = 0.1;
m_CameraPosition.x -= m_CameraMoveSpeed * ts;//这里 ts 被隐式转换为 float