zoukankan      html  css  js  c++  java
  • 多态中虚函数表的地址是所有对象共享的

    class   parent{ 
    public: 
    virtual   test(){ 
    cout < < "from   parent " < <endl; 
    }; 
    }; 

    class   son1:public   parent{ 
    public: 
    virtual   test(){ 
    cout < < "from   son1 " < <endl; 
    }; 
    }; 

    class   son2:public   parent{ 
    public: 
    virtual   test(){ 
    cout < < "from   son2 " < <endl; 
    }; 
    }; 

    void   main(){ 
    son1   s1; 
    son2   s2; 
    parent&   p=s1; 
    p.test(); 
    p=s2; //(1)没有改变 
    p.test(); 

    int   j=1,   k=2; 
    int   &   i   =   j; 
    cout < <i < <endl; 
    i   =   k; //(2)却改变了 
    cout < <i <endl; 


    输出结果: 
    from   son1 
    from   son1 

     

    如果理解了在多态中虚函数表的地址是所有对象共享的。

    对这个结果就不会困惑。

  • 相关阅读:
    CF
    求最长反链 || Dilworth 定理
    APIO 2020 补题记录
    CF vp 记录
    虚树
    LCT 学习
    平衡树
    poly
    关于此博客
    题解 P5021【NOIP2018】 【赛道修建】
  • 原文地址:https://www.cnblogs.com/Huayuan/p/2541179.html
Copyright © 2011-2022 走看看