我不确定这是否是语法问题,但我尝试弄乱声明,似乎无法摆脱错误。这是我在头文件中的私有成员变量。
class PrimeGenerator
{
private:
unique_ptr<bool[]> sequence;
int length;
这些声明引发了BAD_ALLOCATION错误。我的语法不正确吗?如何声明unique_ptr数组的成员?
sequence[0] = 0;
sequence[1] = 0;
sequence[2] = 1;
答案 0 :(得分:0)
在您的代码unique_ptr<bool[]> sequence;
中似乎没有指向任何值。
unique_ptr<bool[]> sequence{new bool[3]};
您可以尝试使用上面的代码。同样如前所述,智能指针是包装“原始”(或“裸”)C ++指针的类,用于管理所指向对象的生命周期。 使用原始指针,程序员必须在不再有用时显式销毁该对象。通过比较,智能指针定义了有关销毁对象的时间的策略。您仍然必须创建对象,但不再需要担心销毁它。