017 第四周程式填空題3

2021-10-24 21:32:13 字數 2281 閱讀 5058

描述

寫乙個二維陣列類 array2,使得下面程式的輸出結果是:

0,1,2,3,

4,5,6,7,

8,9,10,11,

next

0,1,2,3,

4,5,6,7,

8,9,10,11,

程式:

#include

#include

using

namespace std;

class

array2

;int

main()

cout << endl;

} cout <<

"next"

<< endl;

array2 b; b = a;

for( i =

0;i <3;

++i )

cout << endl;

}return0;

}

arr

ay2a

(3,4

array2\quad a(3,4

array2

a(3,

4)需要析構函式

a [i

][j]

=i∗4

+j

a[i][j]=i*4+j

a[i][j

]=i∗

4+j,類可以當二維陣列使用,過載[],

=,=

,= a(i

,j

)a(i,j)

a(i,j)

過載( )()

()過載()()

()時候我們採用指標的指標方法來建立:

i nt

∗∗ar

ra

yint\quad **array

int∗∗a

rray

,首先定義了乙個指標的指標,然後arr

ay=n

ewin

t∗[x

]array =new\quad int*[x]

array=

newi

nt∗[

x],是new了乙個指標陣列,並且把∗[0

]*[0]

∗[0]

的位址賦給了arr

ay

array

array。

在申請二維的時候arr

ay[i

]array[i]

array[

i]每個都對應於乙個指標陣列的指標,然後arr

ay[i

]=ne

wint

[y

]array[i]=new int[y]

array[

i]=n

ewin

t[y]

返回乙個整型陣列的指標。這樣arr

ay[i

][j]

array[i][j]

array[

i][j

]就構成了二維。

過載()是我們直接用二維陣列類似的訪問即可。

#include

#include

using

namespace std;

class

array2

array2

(int x,

int y)

:row

(x),

col(y)}~

array2()

delete

array;

}int

*operator

(int row)

int&

operator()

(int i,

int j)

array2&

operator=(

const array2& arr)

delete

array;

}else

for(

int i =

0; i < row;

++i)}}

return

*this;}

};intmain()

cout << endl;

} cout <<

"next"

<< endl;

array2 b; b = a;

for(i =

0; i <3;

++i)

cout << endl;

}return0;

}

004 第四周程式填空題3

include include using namespace std class array2 1 陣列建立和 建立時,通過先分配每乙個下標的n個指標,現為對應的每個指標分配相應的記憶體 時,對應的 內在的時候需要反過來 array2 int height,int width h height w...

程式設計與演算法(三)004 第四周程式填空題3

這道題目最然不是很難,也折騰了挺久,二維陣列的建立需要定義乙個指向指標的指標 int p 過載下標符號之後,p i 成了行入口位址,與一維陣列陣列名同意 p i j 可直接取元素 類中宣告指標作為資料成員,應在建構函式予以定義!private int p int hang,lie public ar...

小程式(第四周)

include include void main int max 20 2 scanf d a 資料組數 if a 0 for i 0 i0 j max i 0 num i 0 while num i z max i 0 max i 1 num i z z 0 for i 0 i這道題的輸入輸出樣...