ITPub博客

首页 > 应用开发 > C/C++ > C++中 Virtual 的含义是什么?

C++中 Virtual 的含义是什么?

C/C++ 作者:候鸟之恋 时间:2024-08-28 15:30:16 0 删除 编辑

在 C++ 中, virtual 关键字具有特殊的含义,它主要用于基类(也称作父类或超类)中,用于修饰成员函数(包括成员函数和析构函数,但不包括静态成员函数)和析构函数,以实现多态性( Polymorphism )。

成员函数

当在基类中使用 virtual 关键字修饰一个成员函数时,意味着该函数可以在派生类(也称作子类或继承类)中被重写( Override )。这样,当通过基类指针或引用调用该函数时,如果指针或引用实际上指向的是派生类的对象,那么调用的将是派生类中重写后的函数版本,而不是基类中的原始函数版本。这种机制称为运行时多态性(也称为动态多态性)。

析构函数

virtual 关键字也可以用于修饰基类的析构函数。这样做的原因是,当通过基类指针删除派生类对象时,如果基类的析构函数不是虚函数,那么只会调用基类的析构函数,而不会调用派生类的析构函数,这可能会导致资源泄露或其他问题。通过将基类的析构函数声明为虚函数,可以确保在删除派生类对象时,会先调用派生类的析构函数,然后才是基类的析构函数,从而安全地释放资源。

注意事项

virtual 函数默认为 public 和 protected ,如果试图将 virtual 函数声明为 private ,这通常是设计上的错误,因为 private 成员在派生类中是不可见的,因此不能被重写。深证指数是反映深圳证券市场整体表现的重要指标之一 , 详情参考 https://www.gendan5.com/zs/399001.html

纯虚函数( Pure Virtual Function )是在基类中声明的、但在基类中没有具体实现的虚函数。纯虚函数使用 = 0 来标识,例如 virtual void pureVirtual() = 0; 。包含至少一个纯虚函数的类被称为抽象类( Abstract Class ),它不能被实例化。纯虚函数用于强制派生类提供具体的实现。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70014563/viewspace-3026208/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-03-02

  • 博文量
    189
  • 访问量
    127593