不存在合适的构造函数来将“哑指针”转换为“智能指针”
||
struct A
{
A(int a);
};
struct B
{
B();
void b(std::shared_ptr<A> a);
};
int main()
{
A a(1);
B b;
b.b(&a);
}
所以我遇到了这个错误,对不起,这是我第一次使用智能指针!
错误:
没有合适的构造函数来将\"A *\"
转换为\"std::tr1::shared_ptr<A>\"
我该如何解决这个问题!
没有找到相关结果
已邀请:
3 个回复
脾萌
将(试图)
一个驻留在堆栈上且因此不可删除的对象:
ѭ3的一个特殊特性是,您可以向构造函数传递一个删除器,该删除器在应删除拥有的指针时将被调用。您可以只编写和使用一个\“ noop \”删除程序,该删除程序什么也不做。以下内容不会调用未定义的行为,也不会尝试删除堆栈变量:
实际上,如果您有一个绝对需要a3ѭ的库API,但又想使用堆栈变量来调用它,则实际上有一个用途。该API的设计不过是另一回事...
拭十年
,或更改
以对其不拥有的东西进行操作。
完趣镐