打印

C++实现单例模式的一个实例

[复制链接]
357|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
keer_zu|  楼主 | 2022-10-9 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码:
#ifndef __IPERF_COLLECTION_H__
#define __IPERF_COLLECTION_H__

#include <map>
#include <pthread.h>
#include "macros.h"

using namespace std;

typedef void ( * port_performance_calback_t ) ( void * data ) ;

template<typename T>
class Singleton{
public:
    static T& get_instance(){
        static T instance;
        return instance;
    }
       
    virtual ~Singleton(){
        std::cout<<"destructor called!"<<std::endl;
    }
       
    Singleton(const Singleton&)=delete;
    Singleton& operator =(const Singleton&)=delete;
       
protected:
    Singleton(){
        std::cout<<"constructor called!"<<std::endl;
    }

};


class IperfCollection:public       Singleton<IperfCollection> {
        friend class Singleton<IperfCollection>;
public:

        int Init(port_performance_calback_t cb);
       
private:

        int createFifo();
        int stringParsing(string str,int port);
        static void *iperfDataCollection(void *data);
        IperfCollection():_callback(NULL){}
        ~IperfCollection(){}
       
        pthread_t        _threadId;
        port_performance_calback_t _callback;
       
        map<int,string> _portFifo;
        map<int,int> _portFd;
};


#endif


使用特权

评论回复
沙发
keer_zu|  楼主 | 2022-10-9 16:50 | 只看该作者
里面:
Singleton(const Singleton&)=delete;
Singleton& operator =(const Singleton&)=delete;


这部分表明禁止拷贝

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1352

主题

12436

帖子

53

粉丝