我正在创建一个二叉树类。我想通过创建一个将数据存储在数组中的类来简化这一过程,然后返回并让奇迹发生。
但是,以下代码部分中注释掉的行会导致 Visual Studio 出现大量错误。这对我来说很有意义,但由于某种原因它无法编译。我不是 C++ 专家,但经过大量谷歌搜索后,没有任何东西适合我。
template
class bin_tree
{
private:
int *data;
public:
int getData(int x)
{
return 1;
};
bin_tree() : data(new int[4])
{
//data = {1, 2, 3, 4};
};
};
最佳答案
如果你的数组大小是固定的(从你的代码来看,似乎是这样),那么你不需要进行动态分配(即"new")。
http://coliru.stacked-crooked.com/a/97e112739e8a45de
class bin_tree
{
private:
int data[4];
public:
int getData(int)
{
return 1;
};
bin_tree()
: data{1, 2, 3, 4} // C++11
{
// or:
data[0] = 11;
data[1] = 22;
// ...
};
};
#include <iostream>
int main()
{
bin_tree tr;
std::cout << "OK";
}
关于c++ - 在构造函数中为数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318114/