码迷,mamicode.com
首页 > 编程语言 > 详细

c++中的virtual函数,即虚函数

时间:2014-10-13 14:12:29      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   java   sp   div   

c++中的虚函数主要是用来实现多态的,虽然都同时指向父类的实例。但调用的确实子类的函数,这个有点像java的接口和实现的关系了。一个接口有多种实现,一个接口对象调用的是哪个实现的方法,这个就是多态了

这里我写了两个类,FClass作为父类,CClass作为子类,父类和子类中都有一个fun()函数。先看一下代码

FClass.h

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 #ifndef __FClass__
 6 #define __FClass__
 7 
 8 class FClass{
 9 public:
10     virtual    void fun1(){
11         cout<<"this is FClass fun1"<<endl;
12     }
13 };
14 
15 #endif

CClass.h

 1 #include <iostream>
 2 #include "FClass.h"
 3 
 4 using namespace std;
 5 
 6 #ifndef __CClass__
 7 #define __CClass__
 8 
 9 class CClass:public FClass{
10 public:
11     virtual void fun1(){
12         cout<<"this is CClass fun1"<<endl;
13     }
14 };
15 #endif

测试main.cpp

 1 #include <iostream>
 2 
 3 #include "FClass.h"
 4 #include "CClass.h"
 5 
 6 using namespace std;
 7 
 8 
 9 int main(){
10     
11 
12     FClass *fclass = new FClass();
13     FClass *cclass = new CClass();
14     fclass->fun1();
15     cclass->fun1();
16 
17     delete fclass;
18     delete cclass;
19 
20     return 0;
21 }

虽然都为FClass类型的指针,但调用的分别是父类和子类的方法

bubuko.com,布布扣

如果不是虚函数调用的都是父类的函数

c++中的virtual函数,即虚函数

标签:style   blog   http   color   io   os   java   sp   div   

原文地址:http://www.cnblogs.com/luckygxf/p/4021659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!