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
    
  • 相关阅读:
    【CF932E】Team Work
    【ZJOI2011】看电影
    【CQOI2011】放棋子
    【HAOI2010】计数
    【HNOI2009】有趣的数列
    【ZJOI2010】排列计数
    【FJOI2016】建筑师
    【USACO10 OPEN】三角形计数
    【HNOI2012】排队
    【HNOI2008】越狱
  • 原文地址:https://www.cnblogs.com/Node-Sans-Blog/p/14249366.html
Copyright © 2011-2022 走看看