zoukankan      html  css  js  c++  java
  • 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类型的指针,但调用的分别是父类和子类的方法

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

  • 相关阅读:
    MySQL 数据库入门操作
    select count(*)和select count(1)
    Oracle instr 及 like
    myeclipse添加svn
    Lanucherr 默认显示第几屏
    【毕设】班级管理系统——易搜
    【毕设】班级管理系统——找回密码模块
    【毕设】班级管理系统——登录模块
    【毕设】班级管理系统——系统介绍
    快速生成扇形图
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4021659.html
Copyright © 2011-2022 走看看