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

鍵盤上的舞者

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 閱讀(380) 評論(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>
            欧美va天堂va视频va在线| 欧美丝袜一区二区| 欧美在线黄色| 国产精品久久一区二区三区| 国产亚洲成精品久久| 日韩一级不卡| 久久综合中文色婷婷| 亚洲天堂av图片| 欧美日韩精品在线观看| 亚洲欧洲一二三| 欧美.com| 在线日韩av| 免费短视频成人日韩| 狠狠色综合网站久久久久久久| 午夜视频在线观看一区二区三区| 亚洲国产精品欧美一二99| 亚洲欧美日韩精品在线| 国产伦精品一区二区三区照片91| 一区二区三区蜜桃网| av成人免费在线观看| 欧美三级欧美一级| 午夜精品美女久久久久av福利| 亚洲图片激情小说| 国产精品一区=区| 午夜影视日本亚洲欧洲精品| 亚洲欧美视频在线观看视频| 国产一区二区三区在线观看视频 | 亚洲无线观看| 亚洲一品av免费观看| 国产视频在线观看一区二区三区 | 一本色道久久综合| 国产精品久久毛片a| 久久精品伊人| 欧美电影在线观看| 亚洲在线免费视频| 欧美伊人久久久久久久久影院 | 久久午夜羞羞影院免费观看| 久久久综合激的五月天| 亚洲精品久久久久久久久久久| 亚洲精品国精品久久99热| 国产精品久久精品日日| 久久婷婷国产麻豆91天堂| 欧美xx视频| 欧美一级片久久久久久久| 欧美激情 亚洲a∨综合| 最新亚洲视频| 欧美精选在线| 午夜在线观看免费一区| 久久久久网址| 亚洲永久精品大片| 亚洲七七久久综合桃花剧情介绍| 亚洲国产成人tv| 日韩午夜三级在线| 午夜精品免费视频| 亚洲级视频在线观看免费1级| 日韩亚洲欧美高清| 国产亚洲精品自拍| 欧美成人精品一区二区三区| 欧美日韩国产黄| 久久久一区二区| 欧美日韩一级片在线观看| 久久精品亚洲乱码伦伦中文| 蜜桃精品一区二区三区 | 久久综合亚州| 国产精品h在线观看| 极品尤物久久久av免费看| 亚洲精品国产精品乱码不99| 国产一区二区三区在线观看网站| 亚洲黄一区二区三区| 国产热re99久久6国产精品| 亚洲国产精品悠悠久久琪琪| 国产欧美日韩综合一区在线观看 | 日韩视频不卡| 久久九九热re6这里有精品| 亚洲一区二区高清视频| 欧美激情bt| 欧美激情一区二区三区在线视频| 国产原创一区二区| 宅男66日本亚洲欧美视频| 久久久一二三| 美女图片一区二区| 国产亚洲第一区| 亚洲亚洲精品三区日韩精品在线视频| 91久久精品国产91久久| 久久se精品一区精品二区| 欧美在线观看视频一区二区三区| 欧美性天天影院| 亚洲视频欧美在线| 艳妇臀荡乳欲伦亚洲一区| 欧美韩国一区| 欧美激情国产精品| 最新国产の精品合集bt伙计| 久久精品一本| 久久精品1区| 亚洲成人在线观看视频| 亚洲欧美日韩视频一区| 亚洲制服av| 欧美日韩国产一级| 亚洲理论在线观看| 欧美日韩一区二区三区| 亚洲欧洲一二三| 在线视频你懂得一区| 麻豆精品精华液| 国产精品专区一| 中文亚洲视频在线| 午夜精品久久久久影视| 国产精品欧美久久| 亚洲欧美影院| 牛牛影视久久网| 亚洲国产欧美久久| 欧美激情一二区| 一本久久综合亚洲鲁鲁| 久久精品国产久精国产一老狼 | 一区二区三区在线观看欧美| 久久精品网址| 久久久久久久精| 亚洲国产综合在线看不卡| 欧美黄在线观看| 日韩网站免费观看| 欧美电影在线观看完整版| 男人的天堂亚洲在线| 欧美成人伊人久久综合网| 日韩天堂在线观看| 欧美色另类天堂2015| 亚洲在线一区二区| 欧美综合77777色婷婷| 极品少妇一区二区三区精品视频| 欧美经典一区二区三区| 亚洲视频免费在线| 免费久久99精品国产| 一区二区三区色| 国内精品伊人久久久久av一坑| 欧美成人黄色小视频| 一区二区三区欧美激情| 久久综合网hezyo| 亚洲午夜av电影| 狠狠干狠狠久久| 欧美片第1页综合| 午夜激情久久久| 日韩一级网站| 欧美国产欧美综合| 欧美亚洲三级| 99国产精品视频免费观看一公开| 国产在线观看91精品一区| 欧美日韩国产一区二区三区| 国产私拍一区| 亚洲高清色综合| 久久精品亚洲精品国产欧美kt∨| 在线性视频日韩欧美| 国产精品综合网站| 欧美精品在线观看播放| 久久久xxx| 亚洲女人av| 一区二区三区欧美在线观看| 亚洲福利专区| 猛干欧美女孩| 久久精品国产在热久久| 亚洲欧美一区二区三区极速播放| 亚洲精品女人| 欧美极品一区| 欧美成人免费视频| 久久男女视频| 久久久国产亚洲精品| 亚洲图片欧洲图片av| 亚洲国产欧美不卡在线观看| 欧美在线一级va免费观看| 亚洲一卡久久| 激情综合亚洲| 香蕉国产精品偷在线观看不卡| 夜夜精品视频一区二区| 亚洲黄色一区二区三区| 国产一区二区三区黄视频| 欧美制服第一页| 欧美sm视频| 性欧美超级视频| 久久先锋影音av| 在线视频你懂得一区| 亚洲欧美日韩精品久久久久| 亚洲激情午夜| 欧美一区二粉嫩精品国产一线天| 国产麻豆日韩欧美久久| 欧美一区视频在线| 亚洲欧洲精品一区二区| 日韩一级片网址| 亚洲欧洲一二三| 亚洲电影第1页| 亚洲国产天堂久久国产91| 亚洲成人在线网| 亚洲欧洲日本国产| 亚洲精品一线二线三线无人区| 91久久中文| 亚洲一区二区免费| 欧美呦呦网站| 免费亚洲一区二区| 欧美日韩久久| 国产精品综合不卡av| 伊人久久成人| 亚洲精品你懂的| 午夜精品久久久久久久99黑人| 久久久999精品视频|