解決辦法:
(1) 可變長陣列
對於可變的二維陣列下標過載,在陣列初始化時指定維數,之後可以像一般的二維陣列進行賦值和取值操作. 當然,使用模板template來實現更好.
1array2dclass
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 };
測試**為:
1test_codeintmain()
11 cout <
13 cout << "
next
"<
14 array2 b; b =a;
15for( i = 0;i < 3; ++i )
19 cout <
21return0;
22 }
輸出結果為:
0,1,2,3result,4,5,6,7
,8,9,10,11
,next
0,1,2,3
,4,5,6,7
,8,9,10,11,
(2)固定長陣列
據悉,固定維數的二維陣列下標過載,一般在像3d圖形方面經常涉及到一些平移轉換矩陣時用到,這裡以 4 * 4 的矩陣為例
1matrix4fstruct
matrix4f
29 };
測試**為:
1test_codeintmain()
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 ...