首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户自定义转换和自定义运算符有什么区别?

用户自定义转换和自定义运算符有什么区别?
EN

Stack Overflow用户
提问于 2011-03-05 13:07:30
回答 3查看 319关注 0票数 3

在运算符重载的情况下,用户自定义转换和自定义运算符有什么区别?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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

票数 0
EN

Stack Overflow用户

发布于 2011-03-05 13:40:02

用户定义的转换可以是:

  • 目标类型中的构造函数,可通过源类型的单个参数调用(如果参数具有默认值,则可以存在更多参数)

名为operator DESTTYPE()的源类型的非静态成员函数

如您所见,第二个选项使用operator关键字,就像重载传统操作符时一样。

(注意:所有这些都在C++标准的[class.conv]小节中进行了正式描述。)

票数 4
EN

Stack Overflow用户

发布于 2011-03-05 13:22:05

C++中,没有可以重载的用户定义运算符的概念。只能重载现有的运算符,少数运算符除外(.*::?:sizeof<代码>E210 )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5201824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档