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

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

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

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

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

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

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

貼一下實現(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個[]號
        {
            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)         //重載第一個[]號
    {
        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語言詳細講解while語句的用法

    C語言詳細講解while語句的用法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    回調(diào)函數(shù)就是一個通過函數(shù)指針調(diào)用的函數(shù),如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個函數(shù),當(dāng)這個指針被用來調(diào)用其所指向的函數(shù)時,我們就說這是回調(diào)函數(shù),下面這篇文章主要給大家介紹了關(guān)于C++中回調(diào)函數(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)境配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C語言線索二叉樹基礎(chǔ)解讀

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

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

最新評論

伊川县| 禄丰县| 淮安市| 长沙市| 乌兰察布市| 宜春市| 外汇| 霍山县| 麦盖提县| 永城市| 南投市| 突泉县| 巴彦县| 浠水县| 彝良县| 海淀区| 鄂托克前旗| 湘阴县| 惠东县| 洪江市| 连山| 岱山县| 双辽市| 潍坊市| 鲁山县| 十堰市| 吉安县| 阿鲁科尔沁旗| 宁国市| 临泉县| 客服| 黄平县| 泸溪县| 海安县| 临夏县| 临清市| 马边| 邵阳市| 哈巴河县| 阜新| 县级市|