21xrx.com
2024-11-05 20:24:24 Tuesday
登录
文章检索 我的文章 写文章
虚函数(Virtual Function)
2023-07-07 21:59:57 深夜i     --     --
多态性(Polymorphism) 基类(Base Class) 动态绑定(Dynamic Binding) 虚函数表(

虚函数(Virtual Function)是一种C++中的特殊函数。它被用来实现多态性(Polymorphism),这是面向对象编程(OOP)的重要特征之一。使用虚函数,我们可以在运行时通过一个基类指针或引用来调用一个派生类中的特定虚函数。

虚函数的语法非常简单,只需在函数声明前面加上virtual关键字,即可将其声明为虚函数。当虚函数被调用时,程序会动态地确定要调用哪个版本的函数,以保证正确的多态性。如果子类没有重写虚函数,则会使用父类的实现。

下面的例子展示了如何使用虚函数:


class Animal {

public:

  virtual void makeSound()

    cout << "The animal makes a sound" << endl;

  

};

class Cat : public Animal {

public:

  void makeSound()

    cout << "Meow" << endl;

  

};

class Dog : public Animal {

public:

  void makeSound()

    cout << "Woof" << endl;

  

};

int main() {

  Animal* animal1 = new Cat();

  Animal* animal2 = new Dog();

  animal1->makeSound();

  animal2->makeSound();

  delete animal1;

  delete animal2;

  return 0;

}

上述程序创建了一个Animal的父类和两个派生类--Cat和Dog。它们都有一个makeSound()函数,但派生类中的实现不同。在主函数中,通过基类指针分别创建一个Cat和Dog对象,然后调用它们的makeSound()函数。由于Animal类中的makeSound()函数是虚函数,所以程序能够在运行时确定要调用哪个版本的makeSound()函数。输出结果为:


Meow

Woof

这个例子展示了虚函数如何实现多态性。当基类指针指向派生类对象时,我们可以在运行时调用特定的虚函数,而不必担心对象的类型。

虚函数是C++中非常有用的特性,它使得面向对象编程更加灵活和易于使用。了解和掌握虚函数的使用方法,能够帮助程序员编写更有层次感的面向对象程序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章