欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

今天看到有人問,在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ù),默認為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;
}

上一篇:C++流操作之fstream用法介紹

欄    目:C語言

下一篇:iostream與iostream.h的區(qū)別詳細解析

本文標題:淺析多維數(shù)組的下標重載

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4125.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有