最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析多維數(shù)組的下標(biāo)重載

 更新時(shí)間:2013年09月17日 09:51:51   作者:  
貼一下實(shí)現(xiàn)基本功能的代碼吧,像越界檢測,及其他功能就沒寫了,只要體現(xiàn)了思路,其他的功能好加

今天看到有人問,在2維或者多維數(shù)組的情況下怎樣重載像[][]這樣的操作符號。

其實(shí)思路也不難啊,只不過是重載2個(gè)[]符號而已,并且2個(gè)[]的功能各不一樣。

第一個(gè)[]應(yīng)該定位行.

最后一個(gè)[]應(yīng)該返回最終數(shù)據(jù)的引用。

貼一下實(shí)現(xiàn)基本功能的代碼吧,像越界檢測,及其他功能就沒寫了,只要體現(xiàn)了思路,其他的功能好加。

復(fù)制代碼 代碼如下:

#include <iostream>
#include <string>

using namespace std;

template <class T> class arr;
template <class T> class arrBody
{
    private:
    friend class arr<T>;
    T* data;
    int row,col,current_row;
    arrBody(int r,int c,T d):row(r),col(c)
    {
        data=new T[r*c];
        current_row=-1;
        for(int k=0;k<r*c;k++)              //初始化數(shù)據(jù),默認(rèn)為0
            data[k]=d;
    }
    public:
        T&   operator[](int  j)            //重載第2個(gè)[]號
        {
            if(j>=0&&j<col)
                return data[current_row*col+j];
        }
        ~arrBody(){delete[]data;} }; template <class  T>  class arr  
{  
private:
    arrBody<T> tBody;  
public:  
    arrBody<T>  &operator[](int i)         //重載第一個(gè)[]號
    {
        if(i>=0&&i<tBody.row)
            tBody.current_row=i;
        return tBody;
    }
    arr(int  i,int  j,T d=0):tBody(i,j,d) {}  
};


void main()
{
    arr<int> a(10,20);
    arr<double> b(5,5);
    cout<<a[5][5]<<endl;
}

相關(guān)文章

  • C語言詳細(xì)講解while語句的用法

    C語言詳細(xì)講解while語句的用法

    c語言while語句的使用語法如“while(condition)?{statement(s);}”,該語句可以是單個(gè)語句,也可以是一個(gè)語句塊,其條件可以是任意表達(dá)式,true是任意非零值,當(dāng)條件為真時(shí),循環(huán)進(jìn)行迭代
    2022-05-05
  • 使用C語言求解撲克牌的順子及n個(gè)骰子的點(diǎn)數(shù)問題

    使用C語言求解撲克牌的順子及n個(gè)骰子的點(diǎn)數(shù)問題

    這篇文章主要介紹了使用C語言求解撲克牌的順子及n個(gè)骰子的點(diǎn)數(shù)問題的方法,解答實(shí)例主要為了突出解題的算法,需要的朋友可以參考下
    2016-03-03
  • c++ cin 作為while條件(詳解)

    c++ cin 作為while條件(詳解)

    下面小編就為大家?guī)硪黄猚++ cin 作為while條件(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Qt基于定時(shí)器實(shí)現(xiàn)動圖展示效果

    Qt基于定時(shí)器實(shí)現(xiàn)動圖展示效果

    這篇文章主要為大家詳細(xì)介紹了Qt基于定時(shí)器實(shí)現(xiàn)簡單動圖展示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C++ 數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)化的實(shí)現(xiàn)

    C++ 數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)化的實(shí)現(xiàn)

    這篇文章主要介紹了C++ 數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • C/C++中#define的妙用分享

    C/C++中#define的妙用分享

    本文主要介紹了C++/C關(guān)于#define的一些妙用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C語言循環(huán)結(jié)構(gòu)深入刨析

    C語言循環(huán)結(jié)構(gòu)深入刨析

    C語言條件控制語句選擇結(jié)構(gòu),是屬于計(jì)算機(jī)的語言編輯,有在C語言條件控制中的語句選擇結(jié)構(gòu)的存在,即是C語言條件控制語句選擇結(jié)構(gòu),循環(huán)控制語句是一個(gè)基于C語言的編程語句,該語句主要有while循環(huán)語句、do-while循環(huán)語句和for循環(huán)語句來實(shí)現(xiàn)循環(huán)結(jié)構(gòu)
    2022-08-08
  • 簡單聊聊C++中回調(diào)函數(shù)的實(shí)現(xiàn)

    簡單聊聊C++中回調(diào)函數(shù)的實(shí)現(xiàn)

    回調(diào)函數(shù)就是一個(gè)通過函數(shù)指針調(diào)用的函數(shù),如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個(gè)函數(shù),當(dāng)這個(gè)指針被用來調(diào)用其所指向的函數(shù)時(shí),我們就說這是回調(diào)函數(shù),下面這篇文章主要給大家介紹了關(guān)于C++中回調(diào)函數(shù)實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • openCV4.1.1+VS2019環(huán)境配置詳解

    openCV4.1.1+VS2019環(huán)境配置詳解

    這篇文章主要介紹了openCV4.1.1+VS2019環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C語言線索二叉樹基礎(chǔ)解讀

    C語言線索二叉樹基礎(chǔ)解讀

    線索二叉樹還是按照鏈二叉樹的方法創(chuàng)建,只不過在結(jié)點(diǎn)原本為空的左指針改為指向該結(jié)點(diǎn)在中序遍歷中的前驅(qū),結(jié)點(diǎn)原本為空的右指針改為指向該結(jié)點(diǎn)在中序遍歷中的后繼,也就是說把空的指針給利用了起來
    2022-04-04

最新評論

永修县| 巫山县| 微山县| 密山市| 蒙山县| 天峻县| 呼玛县| 巴彦县| 武义县| 岳阳市| 叙永县| 通城县| 鹤山市| 阳东县| 孟州市| 井冈山市| 沧州市| 诸暨市| 汝州市| 赣榆县| 侯马市| 安多县| 当阳市| 海城市| 施秉县| 咸丰县| 望奎县| 越西县| 开原市| 桂东县| 大埔区| 北宁市| 丹江口市| 阜南县| 新丰县| 赞皇县| 蒙山县| 台南县| 溧阳市| 洛阳市| 甘洛县|