需要一些帮助来为我的代码编写复制和赋值构造函数。我收到错误"数组只能用初始化列表"初始化。感谢您的帮助 - 谢谢!
class B
{
public:
C **table;
B()
{
table = new C *[TABLE_SIZE]();
}
B(const B& other)
{
table = new C *[TABLE_SIZE](other.table);
memcpy(table, other.table, sizeof(C *)* TABLE_SIZE);
}
B& operator = (const B& other)
{
if (this == &other)
{
return *this;
}
delete[] table;
table = new C *[TABLE_SIZE](other.table);
memcpy(table, other.table, sizeof(C *)* TABLE_SIZE);
return *this;
}
}
答案 0 :(得分:0)
我猜这是因为你正在初始化table
的方式:
table = new C *[TABLE_SIZE](other.table);
memcpy(table, other.table, sizeof(C *)* TABLE_SIZE);
试试这个内容:
table = new C *[TABLE_SIZE];
memcpy(table, other.table, sizeof(C *)* TABLE_SIZE);
我真的不明白你为什么要初始化数组的值,因为那就是你的memcpy
无论如何。