欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

最后一個[]應(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個[]號
        {
            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)文章

  • Qt基于TCP實(shí)現(xiàn)客戶端與服務(wù)端的連接

    Qt基于TCP實(shí)現(xiàn)客戶端與服務(wù)端的連接

    這篇文章主要為大家詳細(xì)介紹了Qt基于TCP實(shí)現(xiàn)客戶端與服務(wù)端的連接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言中預(yù)處理命令的使用

    C語言中預(yù)處理命令的使用

    C語言預(yù)處理是編程中非常重要的一個環(huán)節(jié),通過預(yù)處理指令和預(yù)處理器的一些特性,本文主要介紹了C語言中預(yù)處理命令的使用,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • C++ 類的靜態(tài)成員深入解析

    C++ 類的靜態(tài)成員深入解析

    在C++中類的靜態(tài)成員變量和靜態(tài)成員函數(shù)是個容易出錯的地方,本文先通過幾個例子來總結(jié)靜態(tài)成員變量和成員函數(shù)使用規(guī)則,再給出一個實(shí)例來加深印象
    2013-09-09
  • 深入uCOS中全局變量的使用詳解

    深入uCOS中全局變量的使用詳解

    本篇文章是對uCOS中全局變量的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++核心編程之占位參數(shù)和默認(rèn)參數(shù)

    C++核心編程之占位參數(shù)和默認(rèn)參數(shù)

    這篇文章主要介紹了C++核心編程之占位參數(shù)和默認(rèn)參數(shù),c++中函數(shù)的形參列表中的形參是可以有默認(rèn)值的,函數(shù)的形參列表里可以有占位參數(shù),用來占位,調(diào)用函數(shù)時必須填補(bǔ)位置。下面更多相關(guān)內(nèi)容的詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-03-03
  • 基于C中一個行壓縮圖的簡單實(shí)現(xiàn)代碼

    基于C中一個行壓縮圖的簡單實(shí)現(xiàn)代碼

    首先簡單說一下什么是行壓縮圖,其實(shí)嚴(yán)格意義上應(yīng)該是行壓縮矩陣
    2013-05-05
  • 詳解C++語言中的加法運(yùn)算符與賦值運(yùn)算符的用法

    詳解C++語言中的加法運(yùn)算符與賦值運(yùn)算符的用法

    這篇文章主要介紹了C++語言中的加法運(yùn)算符與賦值運(yùn)算符的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-01-01
  • C語言零基礎(chǔ)徹底掌握預(yù)處理上篇

    C語言零基礎(chǔ)徹底掌握預(yù)處理上篇

    在C語言的程序中包括各種以符號#開頭的編譯指令,這些指令稱為預(yù)處理命令。預(yù)處理命令屬于C語言編譯器,而不是C語言的組成部分,通過預(yù)處理命令可擴(kuò)展C語言程序設(shè)計(jì)的環(huán)境
    2022-08-08
  • C++ 17標(biāo)準(zhǔn)正式發(fā)布! 更簡單地編寫和維護(hù)代碼

    C++ 17標(biāo)準(zhǔn)正式發(fā)布! 更簡單地編寫和維護(hù)代碼

    C++ 17 標(biāo)準(zhǔn)正式發(fā)布:終于能更簡單地編寫和維護(hù)代碼了!本文為大家介紹了C ++ 17 主要特性,感興趣的小伙伴們可以參考一下
    2017-12-12
  • C語言實(shí)現(xiàn)CRC校驗(yàn)算法的示例詳解

    C語言實(shí)現(xiàn)CRC校驗(yàn)算法的示例詳解

    CRC(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))是一種常用的錯誤檢測技術(shù),用于驗(yàn)證數(shù)據(jù)在傳輸或存儲過程中是否發(fā)生了錯誤,本文主要介紹了C語言如何實(shí)現(xiàn)CRC校驗(yàn)算法,需要的可以參考一下
    2023-08-08

最新評論