21xrx.com
2024-12-22 18:19:03 Sunday
登录
文章检索 我的文章 写文章
C++经典多态代码示例
2023-07-02 05:39:35 深夜i     --     --
C++ 经典 多态 代码 示例

C++是一门广泛使用的编程语言,其具有良好的面向对象特性,其中多态便是其中一项重要的特性。下面是一个经典的多态代码示例,来帮助大家更好地理解C++的多态机制。

首先,我们需要定义一个基类Animal(动物),并在其中定义一个纯虚函数speak()。纯虚函数没有具体的实现,它的作用是让继承它的派生类来实现。这样做的好处是能够让不同的派生类实现各自的功能,从而实现多态。


class Animal {

public:

  virtual void speak() = 0; // 纯虚函数

};

接下来,我们需要定义两个派生类:Dog(狗)和Cat(猫), 并分别实现speak()函数。在实现speak()函数时,我们可以使用override关键字来标注重写基类的函数。


class Cat : public Animal {

public:

  void speak() override

    cout << "Miaow!" << endl;

  

};

class Dog : public Animal {

public:

  void speak() override

    cout << "Bark!" << endl;

  

};

现在我们已经定义了基类和两个派生类,接下来可以编写测试代码了。在测试代码中,我们定义了一个指向基类的指针变量ptr,根据不同的情况将其指向不同的派生类对象,然后分别调用speak()函数。


int main() {

  Animal *ptr = nullptr;

  ptr = new Cat();

  ptr->speak();

  ptr = new Dog();

  ptr->speak();

  return 0;

}

在运行测试代码时,我们会看到输出了"Miaow!"和"Bark!"两个字符串,这说明指向不同派生类对象的指针变量在调用同一个函数时,会展现出各自独有的特性。这就是多态的体现。

上述代码中所展现出来的是静态多态,也就是编译时多态,因为在代码编译的时候就已经确定了调用不同函数的方式。C++还具有另一种多态,就是动态多态,也就是运行时多态,它是基于虚函数实现的,下次再做介绍。

  
  

评论区

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