首页 > 代码库 > c++中的virtual函数,即虚函数
c++中的virtual函数,即虚函数
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类型的指针,但调用的分别是父类和子类的方法
如果不是虚函数调用的都是父类的函数
c++中的virtual函数,即虚函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。