在运算符重载的情况下,用户自定义转换和自定义运算符有什么区别?
发布于 2011-03-05 13:13:06
用户定义的转换允许您使用构造函数或转换函数指定对象转换。除了用于初始值设定项、函数参数、函数返回值、表达式操作数、控制迭代的表达式、选择语句和显式类型转换的标准转换外,还隐式使用用户定义的转换。
http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=/com.ibm.xlcpp8a.doc/language/ref/cplr383.htm
我不确定用户定义的运算符(从技术上讲)是否在C++中可用,但运算符可以重载。
http://www.cs.caltech.edu/courses/cs11/material/cpp/donnie/cpp-ops.html
发布于 2011-03-05 13:40:02
用户定义的转换可以是:
或
名为operator DESTTYPE()的源类型的非静态成员函数
如您所见,第二个选项使用operator关键字,就像重载传统操作符时一样。
(注意:所有这些都在C++标准的[class.conv]小节中进行了正式描述。)
发布于 2011-03-05 13:22:05
在C++中,没有可以重载的用户定义运算符的概念。只能重载现有的运算符,少数运算符除外(。,.*,::,?:,sizeof<代码>E210 )。
https://stackoverflow.com/questions/5201824
复制相似问题