21xrx.com
2024-12-22 22:25:40 Sunday
登录
文章检索 我的文章 写文章
C++中有多态吗?
2023-07-07 20:33:37 深夜i     --     --
C++ 多态 继承 虚函数 静态多态 动态多态

在C++中,多态是一种重要的编程概念。多态性指的是能够以多个方式执行相同的操作,这样就可以在运行时动态地决定采取哪种行为。

在C++中,实现多态性的常见方式是使用虚函数。虚函数是一种在基类中声明的函数,它可以被派生类重写,从而实现不同的行为。父类的指针或引用可以用来引用派生类的对象,并且调用重写的虚函数时将会根据对象的实际类型调用正确的函数版本。

例如,假设我们有一个Animal基类和两个派生类Dog和Cat。Animal类定义了一个虚函数speak(),然后我们在派生类中重写了这个函数,使Dog类输出“汪汪”而Cat类输出“喵喵”。


class Animal {

public:

  virtual void speak()

    std::cout << "Animal speaks" << std::endl;

  

};

class Dog : public Animal {

public:

  void speak()

    std::cout << "汪汪" << std::endl;

  

};

class Cat : public Animal {

public:

  void speak()

    std::cout << "喵喵" << std::endl;

  

};

现在我们可以创建一个指向Animal类的指针,然后将其指向Dog或Cat类的对象。对于这个指针,我们可以调用speak函数,并且最终将会根据指向的实际对象类型调用正确的函数。


Animal* ptr1 = new Dog();

Animal* ptr2 = new Cat();

ptr1->speak(); // 输出 "汪汪"

ptr2->speak(); // 输出 "喵喵"

因此,C++中支持多态性,这使得我们可以编写灵活、可扩展和易于维护的代码。

  
  

评论区

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