c++ - 运算符重载和多态区别

标签 c++ polymorphism operator-overloading overloading

我知道参数重载和多态是不一样的。基本上,多态性允许基于对象类型的不同行为。那么,从某种意义上说,运算符重载是不是多态性的体现?

比如+可以用来相加两个int,我也可以用它来相加两个类成员变量,也是int类型。

最佳答案

是的运算符重载也是多​​态。

实际上存在三种多态性:

  • 重载实现了所谓的ad-hoc多态性
  • 子类型化实现了包含多态性
  • 泛型实现了参数多态性。

ad-hoc 多态性通常被认为不是很强大,它只是方便。

关于c++ - 运算符重载和多态区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21287219/

相关文章:

C++基类指针、集合类

c++ - 架构 x86_64 的 undefined symbol : "Shape::get_area()", 从 : votable for shape in shape. o 引用

c++ - 重载 >= 运算符来比较指针

C++选择问题

c# - 无法在 Visual Studio 2013 中运行单元测试

c++ - 设置多态成员变量的特定参数的通用方法

c++ - 为什么 C++ 编译器找不到运算符 <<

c++ - 在重载 I/O 运算符中重载增量运算符时出错

c++ - 有什么方法可以检测是否使用非虚基析构函数错误地删除了一个类?

c# - 全局与成员函数