21xrx.com
2025-03-28 06:36:18 Friday
文章检索 我的文章 写文章
C++经典多态代码示例
2023-07-02 05:39:35 深夜i     9     0
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++还具有另一种多态,就是动态多态,也就是运行时多态,它是基于虚函数实现的,下次再做介绍。

  
  

评论区

请求出错了