• Gac代码库分析(1)


    基础类:Basic.h

    重在学习思想,难得的开源库

    简单介绍,猜测意图

    一.基本类型

    1.NotCopyable

    意图:阻止继承子类被拷贝

    .h

    class NotCopyable
    {
    private:
        NotCopyable(const NotCopyable&);
        NotCopyable& operator=(const NotCopyable&);
    public:
        NotCopyable();
    };
    

    .cpp

    NotCopyable::NotCopyable()
    {
    }
    
    NotCopyable::NotCopyable(const NotCopyable&)
    {
    }
    
    NotCopyable& NotCopyable::operator=(const NotCopyable&)
    {
        return *this;
    }
    

    2.Error

    意图:用于抛错

    class Error
    {
    private:
        wchar_t*            description;
    public:
        Error(wchar_t* _description);
    
        wchar_t*            Description()const;
    };
    

    3.Object

    意图:学习.net和java等语言,提供一个空的基类

    class Object
    {
    public:
        virtual ~Object();
    };
    

    4.ObjectBox

    意图:提供一份对象的拷贝

    template<typename T>
    class ObjectBox : public Object
    {
    private:
        T                    object;
    public:
        ObjectBox(const T& _object)
        {
            object=_object;
        }
    
        const T& Unbox()
        {
            return object;
        }
    };
    

    5.BinaryRetriver

    意图:提供一个联合体,minSize为默认最小大小,t一般不会超过其大小

    template<typename T, size_t minSize>
    union BinaryRetriver
    {
        T t;
        char binary[sizeof(T)>minSize?sizeof(T):minSize];
    };
    

    demo示例:

    const int BinarySize = sizeof(void*)*8;
    BinaryRetriver<int*, BinarySize> retriver;
    memset(retriver.binary, 0, BinarySize);
    

    6.KeyType

    7.POD

    8.DateTime

    意图:提供时间类的封装

    9.Interface

    class Interface : private NotCopyable
    {
    public:
        virtual ~Interface();
    };
    

    意图:提供接口基类

  • 相关阅读:
    ios 应用剖析
    nyist 737 相邻石子合并问题
    砝码称重 2
    HDU4614【线段树。】
    Spark安装
    广度优先搜索
    MongoDB 操作手冊CRUD 更新 update
    HiWorkV1.3版震撼公布,今日起正式公开測试!
    织梦调用父级栏目链接和名称
    使用Blender批量导出/转换模型
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/2810368.html
Copyright © 2020-2023  润新知