我正在尝试根据用户所需的行数和列数创建二维数组。我收到的错误是"使用未声明的标识符'行""。我搜索堆栈溢出搜索,但无法找到这样的场景,我想知道我在做什么错误下面是我的代码:
#include <iostream>
using namespace std;
class Matrix{
public:
int matrixDimensions[rows][columns];
void setMatrix(int x, int y){
rows = x;
columns = y;
}
int getMatrixDimensions(){
return rows;
return columns;
}
private:
int rows;
int columns;
};
int main(int argc, const char * argv[]) {
int a;
int b;
Matrix matrixObject;
cout << "Please enter the number of rows: " << endl;
cin >> a;
cout << "Please enter the number of columns: "<< endl;
cin >> b;
matrixObject.setMatrix(a, b);
cout << "The number of rows and columns are : " << matrixObject.getMatrixDimensions();
return 0;
}
谢谢大家的反馈很受欢迎。我不能使用矢量,谢谢你提及它们但是它不是一个选项。
答案 0 :(得分:-1)
在C ++中,如果要声明一个数组而不考虑维度,则只能在编译时之前声明它。
例如,在运行时
期间,让 SIZE 成为用户输入int arr[5] // OK
int arr[SIZE] // NOT OK
如果要在运行时期间动态分配数组大小,则必须使用指针。
int* arr = new int [5] // OK
int* arr = new int [SIZE] // OK
答案 1 :(得分:-1)
尝试在函数之前声明变量行和列。 C ++将逐行检查语法。所以可能是问题所在。