在C++中构造对象时出现唯一指针错误



使用unique_ptr创建对象时出错,如下所示错误:从Account*转换为非标量类型std::unique_ptr 时出错

std::unique_ptr <Account> acc_ptr = new Account(100);

如果我使用如下的原始指针,则没有错误

Account *acc_ptr = new Account(100);

为什么会这样?

接受指针的std::unique_ptr构造函数是explicit

你需要这个:

std::unique_ptr <Account> acc_ptr(new Account(100));

或者,从C++14开始,使用更好的std::make_unique版本:

auto acc_ptr = std::make_unique<Account>(100);

相关内容

  • 没有找到相关文章

最新更新