青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

鍵盤上的舞者

My Email: marckywu@gmail.com
隨筆 - 19, 文章 - 0, 評論 - 3, 引用 - 0
數據加載中……

安全訪問數組的指針類模板

在用數組作為數據結構存儲數據的時候,一不小心就訪問越界了,這類錯誤有時候很不容易發現。為此自己封裝一個專門用來訪問數組元素的指針類模板。此類模板需要數組的元素類型,起始地址,大小來構造一個安全的Ptr2T指針對象,此對象訪問數組的方法不但與普通的指針相同,同時還增加了越界的安全檢查。

#include <iostream>
#include 
<stdexcept>

using namespace std;

template
<typename T>
class Ptr2T {
public:
//構造函數,形參為數組起始地址和大小
    Ptr2T(T *p, int size)
        : m_p(p), m_array(p), m_size(size) { };

    Ptr2T
& operator++();                //前綴++
    const Ptr2T operator++(int);        //后綴++

    Ptr2T
& operator--();                //前綴--
    const Ptr2T operator--(int);        //后綴--

    Ptr2T
& operator+=(int n);
    Ptr2T
& operator -=(int n);
//安全的數組元素訪問操作
    T& operator*() const;  
private:
    T 
*m_p;           //訪問數組的指針
    T *m_array;       //保存數組的起始地址
    int m_size;       //保存數組的大小
};

template
<typename T>
inline Ptr2T
<T>& Ptr2T<T>::operator++()
{
    m_p 
+= 1;
    
return *this;
}

template
<typename T>
inline 
const Ptr2T<T> Ptr2T<T>::operator++(int)
{
    Ptr2T current 
= *this;
    
++(*this);       //用重載的前綴++來實現
    
    
return current;
}

template
<typename T>
inline Ptr2T
<T>& Ptr2T<T>::operator--()
{
    m_p 
-= 1;
    
return *this;
}

template
<typename T>
inline 
const Ptr2T<T> Ptr2T<T>::operator--(int)
{
    Ptr2T current 
= *this;
    
--(*this);       //用重載的前綴--來實現

    
return current;
}

template
<typename T>
inline T
& Ptr2T<T>::operator*() const
{
    
if (m_p < m_array || m_p > m_array + m_size - 1) {  //越界檢查
        throw out_of_range("out of range");
    }

    
return *m_p;
}

template
<typename T>
inline Ptr2T
<T>& Ptr2T<T>::operator+=(int n)
{
    m_p 
+= n;
    
return *this;
}

template
<typename T>
inline Ptr2T
<T>& Ptr2T<T>::operator-=(int n)
{
    m_p 
-= n;
    
return *this;
}

template
<typename T>
Ptr2T
<T> operator+(const Ptr2T<T> &p, const int n)
{
    
return Ptr2T<T>(p) += n;   //用重載的+=來實現
}

template
<typename T>
Ptr2T
<T> operator+(const int n, const Ptr2T<T> &p)
{
    
return p + n;
}

template
<typename T>
Ptr2T
<T> operator-(const Ptr2T<T> &p, const int n)
{
    
return Ptr2T<T>(p) -= n;  //用重載的-=來實現
}

//使用方法
int main(void)
{
    
char a[5= {'a''b''c''d''e'};
    
int b[5= {12345}; 

    Ptr2T
<char> pc(a, 5);
    Ptr2T
<int> pi(b, 5);

    cout 
<< *pc++ << endl;
    pi
--;
    pi 
+= 2;
    cout 
<< *(pi - 1<< endl;

    
*++pi = 100;
    cout 
<< *pi << endl;
    
    
return 0;
}

posted on 2009-08-13 18:29 Marcky 閱讀(384) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美亚男人的天堂| 国产精品日韩欧美大师| 激情亚洲成人| 久久亚洲精品中文字幕冲田杏梨 | 亚洲国产欧美一区二区三区久久| 久久综合色影院| 久久综合色播五月| 亚洲伦理在线免费看| 亚洲精品久久久久久久久久久久| 欧美精品激情在线观看| 亚洲一区二区影院| 欧美一级黄色网| 韩国精品在线观看| 亚洲电影毛片| 国产精品稀缺呦系列在线| 欧美在线关看| 久久在线91| 在线亚洲观看| 久久aⅴ国产紧身牛仔裤| 亚洲高清在线观看一区| 亚洲精品视频在线观看网站| 国产精品成人一区| 久久香蕉精品| 欧美日韩国产三区| 久久久噜噜噜久久| 欧美另类videos死尸| 亚洲欧美激情精品一区二区| 久久久久国产一区二区三区| 99国产精品久久久久老师| 亚洲视频每日更新| 亚洲国产成人精品视频| 999在线观看精品免费不卡网站| 国产精品久久波多野结衣| 毛片一区二区| 国产精品久久国产愉拍| 欧美岛国激情| 国产一区二区久久精品| 亚洲伦理在线观看| 伊人蜜桃色噜噜激情综合| 99热精品在线| 亚洲欧洲一区二区天堂久久 | 亚洲欧美一级二级三级| 蜜桃久久精品一区二区| 欧美在线视频观看免费网站| 欧美激情小视频| 久久免费精品日本久久中文字幕| 欧美精品尤物在线| 欧美国产精品久久| 黑人巨大精品欧美黑白配亚洲| 亚洲精品一区二区在线观看| 亚洲国产精品小视频| 午夜精品成人在线| 亚洲欧美日韩国产一区| 欧美精品尤物在线| 亚洲国产精品va在线看黑人| 国产真实乱子伦精品视频| 亚洲小说春色综合另类电影| 日韩视频三区| 欧美精品久久99久久在免费线| 久久婷婷麻豆| 狠狠色丁香婷婷综合久久片| 午夜精品福利视频| 久久国产精品99精品国产| 欧美日韩中国免费专区在线看| 亚洲国产欧美另类丝袜| 亚洲欧洲日本国产| 免费日韩成人| 欧美国产日韩一区二区| 亚洲韩国精品一区| 奶水喷射视频一区| 亚洲高清不卡| 亚洲人成网在线播放| 蜜臀av一级做a爰片久久| 欧美成人按摩| 亚洲精品乱码久久久久久蜜桃麻豆| 久久精品国产一区二区电影| 麻豆九一精品爱看视频在线观看免费| 国产一区二区三区的电影| 欧美在线视频在线播放完整版免费观看| 欧美一区二区三区免费大片| 国产视频在线观看一区| 久久国内精品视频| 欧美福利视频在线观看| 亚洲精品自在久久| 欧美视频一区二区三区…| 亚洲色诱最新| 久久伊伊香蕉| 亚洲美女视频在线免费观看| 欧美日韩综合一区| 欧美一区二区三区四区夜夜大片| 久久久久九九视频| 亚洲激情av| 国产精品美女久久久久久久| 欧美一区二区三区免费观看视频| 久久久久国产成人精品亚洲午夜| 亚洲激情电影在线| 国产精品大片| 久久视频在线看| 亚洲精品资源| 久久久久88色偷偷免费| 亚洲精品国产精品国自产观看浪潮| 欧美日韩精品免费观看视频完整 | 久久久蜜桃一区二区人| 亚洲国产一区二区视频| 国产精品久久久久aaaa| 久久久久久网| 亚洲图中文字幕| 美女精品视频一区| 亚洲视频axxx| 亚洲风情亚aⅴ在线发布| 欧美视频一区| 免费观看欧美在线视频的网站| 亚洲视频精选| 亚洲人精品午夜| 久久精品视频在线| 亚洲一区中文| 亚洲精品系列| 亚洲第一在线综合在线| 国产精品色婷婷| 欧美日本亚洲韩国国产| 久久中文欧美| 久久福利一区| 亚洲午夜电影在线观看| 欧美激情中文字幕在线| 欧美在线免费观看视频| 亚洲最新视频在线| 亚洲福利专区| 国内精品一区二区三区| 国产精品视频精品视频| 欧美日韩中文字幕| 欧美精品日韩www.p站| 久热精品在线视频| 久久精品人人做人人爽| 亚洲欧美综合| 亚洲综合欧美| 亚洲在线电影| 国产精品99久久不卡二区| 亚洲片在线观看| 亚洲成色精品| 亚洲黄色成人| 亚洲国产精品成人久久综合一区| 美女免费视频一区| 久久婷婷色综合| 久久精品一本| 噜噜噜在线观看免费视频日韩| 久久精品国产第一区二区三区| 午夜精品短视频| 性久久久久久久久久久久| 亚洲欧美日韩天堂一区二区| 午夜精品99久久免费| 亚洲欧美制服另类日韩| 亚洲欧美国产一区二区三区| 亚洲欧美日韩国产一区二区三区 | 一区二区三区高清视频在线观看| 亚洲人精品午夜| 日韩一级在线观看| 亚洲天堂激情| 欧美一级视频| 久久青草欧美一区二区三区| 久久精品国产一区二区三| 久久精品天堂| 欧美电影打屁股sp| 亚洲精品乱码久久久久久| 日韩视频免费观看高清完整版| 在线视频日韩精品| 性欧美暴力猛交69hd| 久久久激情视频| 欧美久久成人| 国产精品久久久久国产a级| 国产精品热久久久久夜色精品三区| 国产精品一区二区久久国产| 狠狠色丁香婷婷综合影院| 亚洲激情婷婷| 午夜精品久久久久久久久久久久 | 亚洲一区二区三区视频播放| 香蕉久久夜色精品国产使用方法| 欧美在线播放高清精品| 欧美1区免费| 亚洲美女av网站| 欧美一区二区在线免费观看| 蜜桃久久av| 国产乱码精品一区二区三区五月婷| 国内一区二区在线视频观看| 日韩亚洲在线观看| 久久av红桃一区二区小说| 欧美成人精品三级在线观看| 艳女tv在线观看国产一区| 欧美伊人精品成人久久综合97| 欧美国产日产韩国视频| 国产日韩欧美二区| 99riav1国产精品视频| 久久久久久久久久久久久9999| 亚洲国产欧美一区二区三区同亚洲| 亚洲在线成人| 欧美久久久久免费| 亚洲第一福利社区| 久久国产日本精品| 艳妇臀荡乳欲伦亚洲一区| 免费成人av资源网| 狠狠干狠狠久久|