過載二維陣列下標

2022-05-13 21:51:21 字數 1139 閱讀 8293

解決辦法:

(1) 可變長陣列

對於可變的二維陣列下標過載,在陣列初始化時指定維數,之後可以像一般的二維陣列進行賦值和取值操作. 當然,使用模板template來實現更好.

1

class

array2d

12array2d(){}

1314 ~array2d()

1718

int* operator(const

int idx) const

2122

intoperator()(const

int x, const

inty)

2526 array2d& operator=(array2d&aobj)34}

35}36int getnrow()

37int getncol()

38int* geta()

39 };

array2d

測試**為:

1

intmain()

11 cout <

13 cout << "

next

"<

14 array2 b; b =a;

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

19 cout <

21return0;

22 }

test_code

輸出結果為:

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,

result

(2)固定長陣列

據悉,固定維數的二維陣列下標過載,一般在像3d圖形方面經常涉及到一些平移轉換矩陣時用到,這裡以 4 * 4 的矩陣為例

1

struct

matrix4f

29 };

matrix4f

測試**為:

1

intmain()

test_code

C 過載二維陣列下標

寫在文章開頭的話 1 乙個多維陣列是如何工作的 2 如何過載二維陣列下標 1.分析 過載一維陣列下標很簡單,通過下標傳入的索引值,返回內部陣列中相應的值。那過載二維陣列的下標運算呢?其實過載二維和一維本質是一樣的,因為 c c 中所謂的 二維或多維陣列 都是由簡單的一維陣列表示的。舉個例子哈 下面是...

C 過載二維陣列下標

寫在文章開頭的話 1 乙個多維陣列是如何工作的 2 如何過載二維陣列下標 1.分析 過載一維陣列下標很簡單,通過下標傳入的索引值,返回內部陣列中相應的值。那過載二維陣列的下標運算呢?其實過載二維和一維本質是一樣的,因為 c c 中所謂的 二維或多維陣列 都是由簡單的一維陣列表示的。舉個例子哈 下面是...

二維陣列 運算子過載

編寫乙個程式,用成員函式過載運算子 和 將兩個二維陣列相加和相減,要求第乙個二維陣列的值由建構函式設定,另乙個二維陣列的值由鍵盤輸入 include using namespace std define m 2 define n 3 class complex complex complex aa ...