zoukankan      html  css  js  c++  java
  • 几个简单的基础类

    最近没时间捣鼓啥,也没什么内容可写。

    先把自己捣鼓的几个基础类放上来,已做记录

    namespace DEF{
    
        class Noncopyable
        {
        protected:
            Noncopyable() {}
            ~Noncopyable() {}
        private:
            Noncopyable(const Noncopyable&);
            const Noncopyable& operator=(const Noncopyable&);
        };
    
    
    } //namespace DEF

    noncopyable

    使用其他的类 继承此类可避免不想看到的拷贝操作。

    namespace DEF{
    
        class CCriticalSection :public Noncopyable
        {
        public:
            CCriticalSection(){ InitializeCriticalSection(&cs_); }
            ~CCriticalSection(){ DeleteCriticalSection(&cs_); }
            void Lock(){ EnterCriticalSection(&cs_); }
            void Unlock(){ LeaveCriticalSection(&cs_); }
        private:
            CRITICAL_SECTION    cs_;
        };
    
        class CCSLock :public Noncopyable
        {
        public:
            explicit CCSLock(CCriticalSection& cs) :cs_(cs){
                cs_.Lock();
            }
            ~CCSLock(){
                cs_.Unlock();
            }
        private:
            CCriticalSection& cs_;
        };
    
    }//namespace DEF

    一个windows 多线程锁的类

    使用方法如下:

    class CTest :public DEF::Noncopyable{
    public:
        void test();
    
    private:
        DEF::CCriticalSection cs_;
    }
    
    
    void CTest::test()
    {
        DEF::CCSLock lock(cs_);
        // do something
        // 退出前 自动析构 退出临界区(CriticalSection)
    }
  • 相关阅读:
    洛谷P3806 【模板】点分治1 【点分治】
    《软件自动化测试开发》出版上市-广而告之
    接口测试用例设计
    接口测试用例设计
    测试的行业危机
    测试的行业危机
    测试的行业危机
    从0开始学正则表达式-基于python
    从0开始学正则表达式-基于python
    从0开始学正则表达式-基于python
  • 原文地址:https://www.cnblogs.com/itdef/p/4542291.html
Copyright © 2011-2022 走看看