004 第四周程式填空題3

2021-09-13 09:29:31 字數 1111 閱讀 9854

#include #include using namespace std;

class array2

//1、陣列建立和**

//建立時,通過先分配每乙個下標的n個指標,現為對應的每個指標分配相應的記憶體;

//**時,對應的**內在的時候需要反過來**;

array2(int height, int width):h(height),w(width) }

int &operator()(int i, int j)

//2、的過載,它只能有乙個引數

//如果括號裡有兩個引數,像這樣 (int i,int j)會報錯,提示只能有乙個。不知為何

//這裡為什麼只返回data[i]就行了呢?因為data[i]相當於陣列名,返回去之後其實是這樣的(data[i])[j]

int *operator(int i)

//3、賦值運算子的過載

//這裡如果不返回引用,那麼返回的值將會賦值給乙個臨時物件c。c的東西就是呼叫了預設複製建構函式,複製*this所得到的。

//而預設建構函式對指標不複製?是淺拷貝,所以只是h和w進行了複製,data根本連複製都沒有,都不能算淺拷貝,就是不拷貝。

//如果返回引用的話,就不用呼叫複製建構函式了!!!!

array2& operator=(const array2 &rhs)

h = rhs.h;

w = rhs.w;

data = new int*[h];

for (int i = 0; ifor (int i = 0; i < h; i++)

for (int j = 0; j < w; j++)

data[i][j] = rhs.data[i][j];

return *this;

} ~array2() };

int main()

cout << endl;

} cout << "next" << endl;

array2 b;

b = a;

for (i = 0; i < 3; ++i)

cout << endl;

} return 0;

}

017 第四周程式填空題3

描述 寫乙個二維陣列類 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 ...

程式設計與演算法(三)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這道題的輸入輸出樣...