C++ virtual 关键字总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ virtual 关键字总结相关的知识,希望对你有一定的参考价值。

1.虚函数

如果不使用virtual关键字,当使用基类的指针p指向派生类的对象是,调用的p的一个方法(比如print)时,调用的是基类里面的print方法。

如果使用virtual关键字,则可以调用派生类里的print方法。

class Base
{
public:Base(){}
public:
       virtual void print(){cout<<"Base";}
};
 
class Derived:public Base
{
public:Derived(){}
public:
       void print(){cout<<"Derived";}
};
 
int main()
{
       Base *point=new Derived();
       point->print();
} 

2.纯虚函数:
纯虚函数所在的类被称为抽象类,只能用来被继承而不能实例化。一个虚拟函数只是提供了一个可被子类型改写的接口。

class Query {
public:
// 声明纯虚拟函数
virtual ostream& print( ostream&=cout ) const = 0;
// ...
};

 

以上是关于C++ virtual 关键字总结的主要内容,如果未能解决你的问题,请参考以下文章

C++系列总结——多态

C++ 类的多态一(virtual关键字--构造函数深刻理解)

深度探索C++关键字之 virtual

深度探索C++关键字之 virtual

深度探索C++关键字之 virtual

C++ 风格:为覆盖方法添加前缀 virtual 关键字