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);


以上是C++中对象构造时的唯一指针错误的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>