21xrx.com
2024-11-05 18:28:38 Tuesday
登录
文章检索 我的文章 写文章
C++中virtual的使用方法
2023-07-03 06:54:30 深夜i     --     --
C++ virtual 使用方法

虚函数是C++语言的一项重要特性,它允许在派生类中重写基类中定义的函数。当派生类对象调用被重写的函数时,C++编译器将根据对象的动态类型而不是静态类型来选择正确的函数。

在C++中定义虚函数的方法是在函数前面加上关键字“virtual”。例如,以下代码演示了如何在基类和派生类中使用虚函数:


#include <iostream>

class Shape {

public:

  virtual void draw() {

    std::cout << "Drawing a Shape\n";

  }

};

class Circle : public Shape {

public:

  void draw() override {

    std::cout << "Drawing a Circle\n";

  }

};

int main() {

  Shape* ptr = new Circle();

  ptr->draw();

  delete ptr;

  return 0;

}

在这个例子中,Shape类有一个虚函数draw(),它被Circle类重写并实现绘制一个圆形。在主程序中创建了一个圆形对象,但创建的类类型是Shape指针,这是多态(Polymorphism)的概念。当调用ptr->draw()时,实际上调用的是Circle类中定义的draw()函数。

在C++中,还可以使用纯虚函数(Pure Virtual Function)来创建抽象类。当一个类有至少一个纯虚函数时,它被认为是一个抽象类,而不能创建该类的对象。可以使用以下语法来定义纯虚函数:


virtual void func() = 0;

纯虚函数只声明函数原型,没有函数体,后面跟着一个“=0”表示这是一个纯虚函数。抽象类用来定义一组类所共有的属性和行为。

总之,虚函数是C++中的重要概念。它在面向对象编程中被广泛使用,允许派生类重写基类中定义的函数,从而实现面向对象编程的三大特性之一——多态性。纯虚函数则被用来创建抽象类,通过这种方式来定义和规范类的属性和行为。

  
  
下一篇: C++栈溢出问题

评论区

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