c++ - 用户定义的转换和用户定义的运算符有什么区别?

标签 c++

在运算符重载的上下文中,用户定义的转换和用户定义的运算符有什么区别?

最佳答案

用户定义的转换是:

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

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

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

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

关于c++ - 用户定义的转换和用户定义的运算符有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5201824/

相关文章:

c++ - 性能与 C++ 内存模型

c++ - 我只是不了解 Qt 中的线程

c++ - 如何打包 C++ 项目中的所有库和依赖项?

c++ - Qt 从 QString 动态创建 QWidget

c++ - 将 boost 间隔扩展到标量乘法

c++ - Visual Studio 2010 设置

c++ - 反转 std::list 的内容

c++ - Win32::SetForegroundWindow() 一直不工作

c++ - 如何检查 void* 是否指向对象类型的有效实例上的指针?

C++ 添加 1 年至今