【operator】operator T() 定义隐式类型转换

本文介绍了C++中operator关键字用于定义类型转换函数的原理和应用,详细阐述了类型转换函数的特征,包括其定义在源类中,以operator修饰,并通过return语句实现目标类型的数据转换。通过一个TimeStep类的例子展示了如何将对象隐式转换为float类型,以及在实际编程中的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值