21xrx.com
2024-12-22 23:07:41 Sunday
登录
文章检索 我的文章 写文章
C++中的成员函数调用虚函数
2023-06-30 16:56:12 深夜i     --     --
C++ 成员函数 调用 虚函数

在C++中,类的成员函数可以调用继承自基类的虚函数。虚函数是一种在运行时确定的函数,它与基类中的函数具有相同的名称和参数列表,但在派生类中可以被重新定义。当一个函数被声明为虚函数时,在派生类中定义的同名函数会覆盖基类中的函数,也就是说,派生类对象调用该函数时会调用自己的定义。

当一个类的成员函数通过对象或指针调用时,编译器会知道调用哪个函数。但如果该函数被声明为虚函数,则编译器将在运行时确定应该调用哪个函数。

使用虚函数的好处是可以实现多态性,也就是说,基类指针可以指向派生类对象,并调用派生类的虚函数。

以下是一个示例程序:


#include <iostream>

using namespace std;

class Shape {

  public:

   virtual float area()

     cout << "Shape 的面积是:";

     return 0;

   

};

class Rectangle: public Shape {

  public:

   float area () {

     cout << "Rectangle 的面积是:";

     return (width * height);

   }

  private:

   int width;

   int height;

};

int main( ) {

  Shape *shape;

  Rectangle rec;

  shape = &rec;

  // 调用 Rectangle 的成员函数 area

  cout << shape->area() << endl;

  return 0;

}

在上面的示例中,Shape类中的area()函数被声明为虚函数,而Rectangle类继承了Shape类,并重新定义了area()函数。在main()函数中,通过指针shape引用Rectangle类的对象rec,调用了派生类的虚函数。

输出结果为:


Rectangle 的面积是:0

可以看到,调用的是Rectangle类中的area()函数。

总结:

C++中的成员函数可以调用继承自基类的虚函数,使用虚函数可以实现多态性,即基类指针可以指向派生类对象,并调用派生类的虚函数。虚函数在运行时确定应该调用哪个函数。

  
  

评论区

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