C++虚函数使用源码分享

为什么需要虚函数

MaiziTest13.cpp :定义控制台应用程序的入口点。

1.代码

#include "stdafx.h"

#include

using namespace std;

//基类base定义

class base

{

public:

virtual void disp()

{

cout<<"Hello,base"<

}

};

class child1:public base

{

public:

void disp()//派生类child1中定义的disp()函数将base类中定义的disp()函数隐藏

{

cout<<"hello,child1"<

}

};

class child2:public base

{

public:

void disp()

{

cout<<"hello,child2"<

}

};

void display(base *pb)

{

pb->disp();

}

int _tmain(int argc, _TCHAR* argv[])

{

base *pBase = NULL,obj_base;

obj_base.disp();

pBase = &obj_base;

pBase->disp();

child1 *pchild1 = NULL,obj_child1;

obj_child1.disp();

pchild1 = &obj_child1;

pchild1->disp();

child2 *pchild2 = NULL,obj_child2;

obj_child2.disp();

pchild2 = &obj_child2;

pchild2->disp();

//使用obj_child1的地址为pBase赋值

pBase = &obj_child1;

pBase->disp();

display(&obj_base);

display(&obj_child1);

display(&obj_child2);

return 0;

}

2.运行结果

C++虚函数使用源码分享_第1张图片


原文链接:http://www.maiziedu.com/wiki/cplus/virtual/

你可能感兴趣的:(C++虚函数使用源码分享)