編輯#1 所以我認爲我的解決方案是通過函數傳遞類,然後我必須獲取大小值在主要並將它們傳遞到類。那麼,如何基於2個int值在類中創建一個多維數組?這是我,但我得到的錯誤「'二」不能出現在一個常數表達式」全局變量和多維數組主外C++
class tempHolder{
public:
bool C1[col1][row1];
tempHolder(){
}
tempHolder(int i, int ii){
int* C1 = new bool[i][ii];
}
}
所以我的程序有一個多維數組,但我使用全局變量(我知道是不好的風格)來聲明數組的大小。問題是,我也通過這個陣列功能,我用它在一個類中,如下面的代碼...
#include <iostream>
using namespace std;
const int row1 = 12;
const int col1 = 32;
class tempHolder{
public:
bool C1[col1][row1];
void operator=(bool C2[col1][row1]){
for(int i=0;i<row1;i++)
for(int ii=0;ii<col1;ii++)
C1[i][ii] = C2[i][ii];
}
};
void printTable(bool CC[][row1], int, bool);
int main(int argc, char *argv[]) {
col1=5; //error
bool C1[col1][row1];
所以我希望能夠在改變ROW1和COL1正確的價值觀main的開頭,然後它將改變整個程序的數組大小。如果我像上面那樣聲明全局變量,那麼程序會編譯,但由於它們是常量,我將無法更改它們。我無法使用#define,因爲它們根本無法更改。那麼我能做些什麼來調整整個程序的數組大小呢?
您可以使用'new'和'delete'的動態分配來改變數組的大小。或者更好的是,只需使用std :: vector作爲多維數組而不是原始數組。 – greatwolf 2011-04-02 03:53:18