C++ 模板类

模板类

概述

	1. 模板类的声明和定义均写在.h内
	2. 类格式
			template<typename T>
			class 类名 {
			};
	3. 成员(变量, 方法)格式
			template<typename T>
			类名<T>::方法名(){
			}

示例

  1. 定义

     #ifndef THREAD_SAFE_STRING_H_
     #define THREAD_SAFE_STRING_H_
     
     #include <string>
     using namespace std;
     
     template<typename LOCKER>
     class ThreadSafeString : public string
     {
     public:
         ThreadSafeString(const char *data);
         ~ThreadSafeString();
     
     public:
         int length();
         void setString(const char *data);
         string getString();
     private:
         string m_string;
         LOCKER m_locker;
         int    iNum;
     };
     
     template<typename LOCKER>
     ThreadSafeString<LOCKER>::ThreadSafeString(const char *data)
         : m_string(data)
     {
         iNum = m_string.length();
     }
     
     template<typename LOCKER>
     ThreadSafeString<LOCKER>::~ThreadSafeString()
     {
     
     }
     
     template<typename LOCKER>
     int ThreadSafeString<LOCKER>::length()
     {
         m_locker.lock();
         int len = m_string.length();
         m_locker.unlock();
     
         return len;
     }
     
     template<typename LOCKER>
     void ThreadSafeString<LOCKER>::setString(const char *data)
     {
         m_locker.lock();
         m_string = data;
         m_locker.unlock();
     }
     
     template<typename LOCKER>
     string ThreadSafeString<LOCKER>::getString()
     {
         m_locker.lock();
         auto tmpStr = m_string;
         m_locker.unlock();
         return tmpStr;
     }
     
     #endif//THREAD_SAFE_STRING_H_
    
  2. 使用

    	//myLocker
    	ThreadSafeString<myLocker> safeString("hello world!");
    	safeString.length();
    	.........
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值