首页 > 应用开发 > C/C++ > C++中 Virtual 的含义是什么?
在 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/ ,如需转载,请注明出处,否则将追究法律责任。