21xrx.com
2024-09-19 23:57:23 Thursday
登录
文章检索 我的文章 写文章
C++实现多态的方法
2023-07-02 06:34:19 深夜i     --     --
C++ 多态 继承 虚函数 动态绑定

C++是一种强类型编程语言,它支持多种编程范式,其中面向对象编程是C++最重要的特征之一。C++中的多态性是通过继承和虚函数来实现的。

在C++中,继承允许我们定义一个类,该类从另一个类继承属性和方法。这样,子类可以访问父类的方法和属性。因此,当我们创建一个具有多个子类的继承层次结构时,我们可以使用继承来定义多态性。

C++中的虚函数是一种特殊的函数,我们可以通过该函数来实现多态。虚函数是可以在派生类中重新定义的函数,这意味着派生类可以覆盖基类中定义的虚函数。同时,可以通过指向子类对象的基类指针或引用来调用虚函数。

使用多态性的代码的示例:


class Animal {

public:

  virtual void sound() {

    std::cout << "I am an animal.\n";

  }

};

class Dog : public Animal {

public:

  void sound() {

    std::cout << "I am a dog.\n";

  }

};

class Cat : public Animal {

public:

  void sound() {

    std::cout << "I am a cat.\n";

  }

};

int main() {

  Animal* ptr;

  Animal a;

  Dog d;

  Cat c;

  ptr = &a;

  ptr->sound(); // Output: I am an animal.

  ptr = &d;

  ptr->sound(); // Output: I am a dog.

  ptr = &c;

  ptr->sound(); // Output: I am a cat.

  return 0;

}

在上面的示例中,我们定义了一个基类Animal和两个派生类Dog和Cat。Animal类中有一个虚函数sound(),可以在子类中重新定义。在主函数中,使用基类指针ptr来指向不同的对象,然后调用sound()函数。由于sound()是虚函数,因此总是调用指向对象的函数的版本。

总的来说,在C++中,使用继承和虚函数是实现多态性的最简单和最常用方法。利用这一技术,我们可以编写更具可扩展性且易于维护的代码。

  
  

评论区

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