重载和对象定向之间的关系 < C++ > 函数重载与对象定位之间是否存在关系?

重载和对象定向之间的关系 < C++ > 函数重载与对象定位之间是否存在关系?,c++,oop,operator-overloading,overloading,C++,Oop,Operator Overloading,Overloading,如果是,那么这种关系是什么?函数重载与面向对象中最深刻的思想之一有关:数据类型决定函数或运算符的行为 一个相关的概念是操作符重载。运算符(如+或-)可以应用于不同的数据类型,并且该运算符将对所涉及的类型执行正确的操作 您还可以为自己的类型编写运算符函数 您可以在核心语言中看到运算符重载。添加两个整数和添加两个浮点数需要不同的机器指令 < > C++编译器根据表达式中的类型执行不同的低级例程: a + b 如果参数类型发生变化,编译器将生成不同的指令 同样,这种思想在面向对象中根深蒂固:所涉及的

如果是,那么这种关系是什么?

函数重载与面向对象中最深刻的思想之一有关:数据类型决定函数或运算符的行为

一个相关的概念是操作符重载。运算符(如+或-)可以应用于不同的数据类型,并且该运算符将对所涉及的类型执行正确的操作

您还可以为自己的类型编写运算符函数

您可以在核心语言中看到运算符重载。添加两个整数和添加两个浮点数需要不同的机器指令

< > C++编译器根据表达式中的类型执行不同的低级例程:

a + b
如果参数类型发生变化,编译器将生成不同的指令

同样,这种思想在面向对象中根深蒂固:所涉及的数据类型决定了函数的行为


然而,重载并不是这个想法的完全实现。类型信息在编译时可能不完全已知。这就是多态性发挥作用的地方。

这些是独立的概念

如上所述,重载是使用类型来确定函数

面向对象编程是通过建模对象的概念对数据和功能进行逻辑组织,通常是真实世界的对象或其抽象


寻求解决类似问题的语言通常提供这两种功能,但其中一种可以自由使用一种工具,而不是另一种工具,不会造成伤害。

它们之间的关联在于,大多数面向对象系统的一个特征是某种多态性,重载也提供了一种多态性(特别是一种特殊多态性)

C++主要通过三种方式提供多态性:

  • 重载(一种特殊多态性)
  • 模板(也是一种特殊多态性)
  • 类继承(由于将每个类定义为一个类型而形成的子类型多态性的一种形式)

事实上,这些特性中的每一个都提供了某种多态性,这使它们相互关联。

我不是要否决你。但你没有达到目标。函数可以与多个类型一起工作的想法与OO无关,它是多态性的基础。类型决定行为也只是类bein的一个意外在C++中,有一些OO系统,其中对象完全不包含类型,行为的最后一个句子是非常错误的,因为它意味着多态性与过载是分开的,而重载实际上是一种多态性。此外,你还关注运算符重载,但是C++的重载远多于运算符。为什么有人否决了这个问题。这可能不是一个编程问题,但这是一个关于编程的重要概念。也许他们认为它更适合其他网站。也许,但我不确定。