2024年6月13日发(作者:)
virtual用法一
#include
using namespace std;
class A{
public:
virtual void display(){ cout<<"A"< }; class B : public A{ public: void display(){ cout<<"B"< }; void doDisplay(A *p) { p->display(); delete p; } int main(int argc,char* argv[]) { doDisplay(new B()); return 0; } 这段代码打印出的结果为B,但是当把A类中的virtual去掉之后打印出的就为A。当 基类中没有virtual的时候,编译器在编译的时候把p看做A类的对象,调用的自然就是 A类的方法。但是加上virtual之后,将dispaly方法变成了虚方法,这样调用的时候编译 器会看调用的究竟是谁的实例化对象,这样就实现了多态的效果。也就是说,当基类的派 生类中有重写过基类的虚方法的时候,使用基类的指针指向派生类的对象,调用这个方法 实际上调用的会是派生类最后实现的方法 virtual用法二 #include
发布者:admin,转转请注明出处:http://www.yc00.com/news/1718290158a2747998.html
评论列表(0条)