zoukankan      html  css  js  c++  java
  • C++ 虚函数

    C++ 虚函数主要是解决函数继承时,被重载的方法调用的问题。这么说可能有点晕,来看看下面这个程序

    #include <iostream>
    
    using std::cout;
    using std::endl;
    
    class A {
    public:
      void f() {
        cout << "A class function
    ";
      }
    };
    
    class B : public A {
    public:
      void f() {
        cout << "B class function
    ";
      } 
    };
    
    class C : public A {
    public:
      void f() {
        cout << "C class function
    ";
      } 
    };
    
    int main() {
      B testb;
      C testc;
      A *p;
      p = &testb;
      p->f();
      p = &testc;
      p->f();
      return 0;
    }
    

    输出结果

    A class function
    A class function
    

    在上面这个程序中,我们定义了三个类,其中类B和类C继承自类A。然后我们用一个类A的指针变量p指向了实例testb, testc。然后调用了函数f。但是这个函数f很显然都是类A的函数。那么我们现在需要这个程序能够根据实例的类型,动态选择需要调用的f函数。那么我们只需要将函数f定义成虚函数就可以了

    class A {
    public:
      virtual void f() {
        cout << "A class function
    ";
      }
    };
    

    输出

    B class function
    C class function
    
  • 相关阅读:
    bzoj 3944 Sum
    [BZOJ2693]jzptab
    luogu 3768 简单的数学题
    [ZJOI2015]幻想乡战略游戏
    [SDOI2017]数字表格
    [ZJOI2007]Hide 捉迷藏
    [SDOI2016]游戏
    [SPOJ10707]Count on a tree II
    [Luogu4177][CEOI2008]order
    [BZOJ4491]我也不知道题目名字是什么
  • 原文地址:https://www.cnblogs.com/Node-Sans-Blog/p/14249366.html
Copyright © 2011-2022 走看看