zoukankan      html  css  js  c++  java
  • 对象切割 ObjectSlicing

    /*
     Test ONE:
    CDocument::func()
    CMyDoc::Serialize()
    Test TWO:
    CDocument::func()
    CMyDoc::Serialize()
    Test Three:
    CDocument::func()
    CMyDoc::Serialize()
    Test Four:
    CDocument::func()
    CDocument::Serialize()   
     
    */
    #include <iostream>
    using namespace std;

    class CObject
    {
    public:
        virtual void Serialize(){ cout << "CObject::Serialize() \n"; }
    };

    class CDocument : public CObject
    {
    public:
        int m_data1;
        void func(){
            cout << "CDocument::func()" << endl;
            Serialize();
        }
        void Serialize(){ cout << "CDocument::Serialize() \n"; }
    };

    class CMyDoc : public CDocument
    {
    public:
        int m_data2;
        virtual void Serialize(){ cout << "CMyDoc::Serialize()" << endl; }
    };

    void main()
    {
        CMyDoc mydoc;//感觉这仅仅是一个声明,为什么居然能呼叫函数
        CMyDoc* pDoc = new CMyDoc; //这里()可有可无

        cout << "Test ONE:" << endl;
        mydoc.func();

        cout << "Test TWO:" << endl;
        ((CDocument*) &mydoc)->func();

        cout <<"Test Three:" << endl;
        pDoc->func();

        cout << "Test Four:" << endl;
        ((CDocument) mydoc).func();

        system("pause");
    }
  • 相关阅读:
    关于php配置文件
    修改范围PHP_INI_SYSTEM与PHP_INI_ALL的区别
    mysql索引常见问题
    K-D TREE算法原理及实现
    Matlab K-means聚类
    Matlab 聚类分析
    Zbar 大图像分析
    Zbar -- 源码分析
    ZBar在Windows上的使用 -- ImageMagick and OpenCV
    Zbar算法流程介绍
  • 原文地址:https://www.cnblogs.com/flaaash/p/1895118.html
Copyright © 2011-2022 走看看