c++_Virtual用法

c++_Virtual用法


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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信