评论

收藏

[C++] c++中的virtual函数,即虚函数

编程语言 编程语言 发布于:2021-08-07 12:16 | 阅读数:322 | 评论:0

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类型的指针,但调用的分别是父类和子类的方法
DSC0000.png

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


关注下面的标签,发现更多相似文章