你需要一個指針的指針,以創建一個[普通] 2維數組 所以
int ** const e;
然後構造函數可以工作,如:
e = (int**) malloc(sizeof(int**) * a);
for(int i=0;i<a;++i) {
e[i] = (int*) malloc(sizeof(int*) * b);
}
你的下一個問題是「如何初始化常量「。對於這一點,你可以參考答案在這裏: how to initialize const member variable in a class C++
實現這一點,把inittializer代碼的函數:
initConstArray(const int** const a, int r, int c) {
e = (int**) malloc(sizeof(int**) * a);
for(int i=0;i<r;++i) {
e[i] = (int*) malloc(sizeof(int*) * b);
for(int j = 0;j < c; ++j) {
e[i][j] = a[i][j];
}
,並從構造函數初始化列表中調用這個函數:
A(int **a, int r, int c) : initConstArray(a, r, c) {
}
,如果你想要的任何預置的矩陣功能,外觀到像徵 – chris 2014-12-04 01:48:00
庫,但在這個項目中我不想使用任何庫 – Cieja 2014-12-04 01:49:26
'memset'是你的朋友,假設你真的只想要一個「空」(這在軟件開發中沒有真正意義)矩陣。另外,由於「empty」這個詞出現在你的問題標題中,而不是在體內,所以我不知道你真正要求什麼。 – 2014-12-04 02:08:50