[C/C++]_[操作符重载operator type()和operator()的区别]

本文探讨了C/C++中操作符重载`operator type()`与`operator()`的区别。通过分析WTL的CWindow源码,指出`operator type()`通常用于类型转换,而`operator()`常用于函数调用模拟。文章通过示例代码进行详细解释。
摘要由CSDN通过智能技术生成


场景:

1.看到WTL的CWindow源码时会发现这样的operator重载,仔细看会发现它并不是重载()操作符.

	operator HWND() const throw()
	{
		return m_hWnd;
	}

如果重载()操作符,应该是,返回值HWND应该在operator的左边,而且应该有两个括号()

HWND operator ()() const throw()
{
	return m_hWnd;
}

这种类型的操作符重载应该是type conversion operator(类型转换操作符),它可以把类类型转换为指定的类型,如果定义了这种转换,好处就是该类对象赋值给 method(HWND),参数是HWND类型的方法时会自动转换为HWND类型,或者需要打印这个类信息时。operator std::string().


函数原型:

operator Type()

而重载()操作符确实是需要调用()才会调用,比如objec
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Peter(阿斯拉达)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值