zoukankan      html  css  js  c++  java
  • 一段C++代码,可能颠覆你已有的概念

    一段C++代码,可能颠覆你已有的概念

    class AD
    {
    public:
        AD() {}
        
    virtual ~AD() {}

        
    void fun()
        {
            cout 
    << "AD::fun()"<< endl;
        }
    };

    class BD : public AD
    {
    private:
        
    int i;
    public:
        BD() { i 
    = 0; }

        
    void fun()
        {
            i 
    = 1;
            cout 
    << "BD::fun()" << endl;
        }
    };

    class CD : public AD
    {
    public:
        CD() {}

        
    void fun2()
        {
            cout 
    << "CD::fun2()" << endl;
        }
    };

    int _tmain(int argc, _TCHAR* argv[])
    {
        
    //TestTemp<float, float, int> test;
        BD* pBD = new BD();
        AD
    * pAD = dynamic_cast<AD*>(pBD);
        CD
    * pCD = dynamic_cast<CD*>(pAD);
        
    //pBD->fun();
        pCD->fun2();

        
    //BD* pBD2 = 0;
        
    //pBD2->fun();

        
    return 0;
    }

    pCD为空,但是依旧可以输出,调用fun2函数。

  • 相关阅读:
    iType.js仿输入文字效果
    css上下左右居中
    js的几种继承方式
    jquery ajax跨越
    js构造函数+原型
    less基础引用
    vw单位相关
    移动端适配(rem单位定义方法)
    第二周 day2 python学习笔记
    第一周 day1 Python学习笔记
  • 原文地址:https://www.cnblogs.com/SunWentao/p/1382635.html
Copyright © 2011-2022 走看看