21xrx.com
2024-11-08 22:21:07 Friday
登录
文章检索 我的文章 写文章
C++多态示例
2023-07-12 06:05:07 深夜i     --     --
C++ 多态 示例 继承 虚函数

C++是一门面向对象的编程语言,多态是其中一个重要的面向对象的特性。在C++中,多态性指一个对象可以具有多种形态。这些形态可以在运行时根据需要动态地切换,以实现更灵活的程序设计。

以下是一个简单的C++多态示例,通过这个示例可以更好地理解多态的概念和实际应用。


#include <iostream>

using namespace std;

class Animal {

public:

  virtual void makeSound()

    cout << "Animal makes sound" << endl;

  

};

class Dog : public Animal {

public:

  void makeSound()

    cout << "Bark!" << endl;

  

};

class Cat : public Animal {

public:

  void makeSound()

    cout << "Meow!" << endl;

  

};

int main() {

  Animal *ptrAnimal;

  Dog dog;

  Cat cat;

  ptrAnimal = &dog;

  ptrAnimal->makeSound();

  ptrAnimal = &cat;

  ptrAnimal->makeSound();

  return 0;

}

在这个示例中,定义了一个基类Animal和两个派生类Dog和Cat。基类Animal有一个makeSound()方法,里面输出一个“Animal makes sound”的提示信息。派生类Dog和Cat分别覆盖了makeSound()方法,并分别输出“Bark!”和“Meow!”的提示信息。

在main函数里,定义了一个指向Animal类型的指针ptrAnimal,并依次将它指向Dog和Cat对象。然后调用ptrAnimal所指向对象的makeSound()方法。因为makeSound()方法是虚函数,所以在运行时会根据ptrAnimal指向对象的实际类型来调用相应的makeSound()方法。当ptrAnimal指向Dog对象时,调用的是Dog的makeSound()方法输出“Bark!”;当ptrAnimal指向Cat对象时,调用的是Cat的makeSound()方法输出“Meow!”。

这个示例中体现了多态性的核心思想:不同对象有不同的实现,但是它们都能被同样的接口(makeSound()方法)调用。在运行时,根据指针实际指向的对象的类型,动态地确定使用哪一个实现。这样就可以实现更加灵活的代码设计和编写。

总之,C++多态性是一种非常有用和强大的面向对象编程特性,可以充分发挥面向对象编程的优势,让代码更加灵活和可维护。掌握多态性是C++编程的重要基础之一。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复