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 #endifCClass.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类型的指针,但调用的分别是父类和子类的方法
如果不是虚函数调用的都是父类的函数
文档来源:51CTO技术博客https://blog.51cto.com/u_2498536/3305566
页:
[1]