【发布时间】:2011-10-26 17:43:50
【问题描述】:
我有以下代码:
template <typename M>
struct Matrix
{
Matrix(int size);//(int x = defaultRows, int y = defaultCols);
~Matrix();
int rowSize;
int colSize;
char alpha[4];
int getSize() const;
void displayAll();
M getElement(int x, int y);
M** aMatrix;
};
template <typename M>
Matrix<M>::Matrix(int size)
{
alpha = {'a', 'b', 'c', 'd'};
rowSize = size;
colSize = size + 1;
aMatrix = new M*[rowSize];
srand(time(NULL)); //set the random seed
for(int r = 0; r < size; r++)
{
aMatrix[r] = new M[colSize];
for(int c = 0; c < colSize; c++)
{
int randomNum = rand() % 19 + (-9);
aMatrix[r][c] = randomNum;
}
}
}
我不知道为什么,但是当我尝试编译程序时,我不断收到错误消息。它与我的“alpha”字符数组有关(当我将其注释掉时,它工作正常)。
我完全看不出它有什么问题......
错误是: 错误 3 错误 C2143:语法错误:缺少 ';'在'}'之前
错误 2 错误 C2143:语法错误:缺少 ';'在'{'之前
错误 1 错误 C2059:语法错误:'{'
不要以为我错过了什么吗??
【问题讨论】:
-
alpha = {'a', 'b', 'c', 'd'};- 在你已经在别处声明它之后,你不能像这样初始化一个数组。您必须在一行中完成所有操作。