gpt4 book ai didi

c++ - 字符数组在 C++ 中不起作用

转载 作者:行者123 更新时间:2023-11-28 03:45:05 24 4
gpt4 key购买 nike

我有以下代码:

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:语法错误:'{'

别以为我错过了什么,对吗?

最佳答案

您不能在 C++ 中执行此操作(至少有一段时间不能):

alpha = {'a', 'b', 'c', 'd'};

它看起来像一个初始值设定项,但实际上不是。尝试:

alpha[0] = 'a';
alpha[1] = 'b';
alpha[2] = 'c';
alpha[3] = 'd';

编辑

并不是说它会对你有多大帮助,但 C99(连同一些 C++ 编译器,作为扩展)支持这个:

alpha = (char[]){'a', 'b', 'c', 'd'};

关于c++ - 字符数组在 C++ 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7906648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com