描述
寫乙個二維陣列類 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這道題的輸入輸出樣...