当前位置: 首页 > 编程笔记 >

C ++中的多态示例

辛星宇
2023-03-14
本文向大家介绍C ++中的多态示例,包括了C ++中的多态示例的使用技巧和注意事项,需要的朋友参考一下

多态是面向对象编程的关键特征,即具有多种形式。在C ++中,这分为编译时多态和运行时多态。

编译时多态的一个示例是函数重载或运算符重载。函数覆盖是运行时多态性的一个示例。

C ++中使用函数重载的多态示例如下。

示例

#include <iostream>
using namespace std;
class Example {
   public :
   void func(int a) {
      cout << "\nThe value of a: " << a;
   }
   void func(int a, int b) {
      cout << "\nThe value of a: " << a;
      cout << "\nThe value of b: " << b;
   }
   void func(char c) {
      cout << "\nThe value of c: " << c;
   }
};
int main() {
   Example obj;
   cout<< "\nOne int value";
   obj.func(5);
   cout<< "\nOne char value";
   obj.func('A');
   cout<< "\nTwo int values";
   obj.func(7, 2);
   return 0;
}

输出结果

上面程序的输出如下。

One int value
The value of a: 5
One char value
The value of c: A
Two int values
The value of a: 7
The value of b: 2

现在,让我们了解以上程序

func()类Example中的成员函数已重载。func()可以根据需要选择具有不同参数的3个功能。给出的代码片段如下。

class Example {
   public :
   void func(int a) {
      cout << "\nThe value of a: " << a;
   }
   void func(int a, int b) {
      cout << "\nThe value of a: " << a;
      cout << "\nThe value of b: " << b;
   }
   void func(char c) {
      cout << "\nThe value of c: " << c;
   }
};

在函数中main(),创建了Example类的对象obj。func()使用不同的参数调用该函数以演示函数重载。给出的代码片段如下。

int main() {
   Example obj;
   cout<< "\nOne int value";
   obj.func(5);
   cout<< "\nOne char value";
   obj.func('A');
   cout<< "\nTwo int values";
   obj.func(7, 2);
   return 0;
}
 类似资料:
  • 主要内容:1、编译时多态,2、运行时多态多态与 封装和 继承被视为面向对象编程的三大特性。 多态(Polymorphism)是一个希腊词,指“多种形态”,在 C# 中具有两种类型的多态: 编译时多态:通过 C# 中的方法重载和运算符重载来实现编译时多态,也称为静态绑定或早期绑定; 运行时多态:通过方法重载实现的运行时多态,也称为动态绑定或后期绑定。 1、编译时多态 在编译期间将函数与对象链接的机制称为早期绑定,也称为静态绑定。C# 提供

  • 多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。 C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。 下面的实例中,基类 Shape 被派生为两个类,如下所示:#include <iostream> using namespace std; class Shape { protected: int width, height

  • 我试图在c#中创建一个参数多态性函数: 我想让T成为类型变量。但是我得到了一个关于类的错误,没有找到T。 有人知道如何解决这个问题吗? 谢谢。

  • 问题内容: 运行时多态与静态多态有何不同? 这可以作为运行时多态的示例吗? 代码是从这里挑选的 问题答案: 是的,这是在Java中 在中,编译器本身确定应调用的方法。是静态多态性的一个例子。 在中,编译器无法在编译时确定方法。(如您的示例)是的示例。因为在(如您的示例中),类和中的签名相似。因此,编译器无法在编译时确定应执行的方法。仅在对象创建(这是一个运行时过程)之后,运行时环境才能了解要调用的

  • 本文向大家介绍什么是C#中的多态性?,包括了什么是C#中的多态性?的使用技巧和注意事项,需要的朋友参考一下 多态可以是静态的也可以是动态的。在静态多态性中,对函数的响应是在编译时确定的。在动态多态中,它是在运行时决定的。 在静态多态性中,对函数的响应是在编译时确定的。在动态多态中,它是在运行时决定的。动态多态是我们所谓的后期绑定。 编译时多态或静态绑定 在编译期间将函数与对象链接的机制称为早期绑定

  • 这可以是运行时多态性的一个例子吗? 代码已从这里摘取