gpt4 book ai didi

c++ - 我的 shared_ptr 初始化列表代码有什么问题?

转载 作者:行者123 更新时间:2023-11-30 01:52:50 28 4
gpt4 key购买 nike

<分区>

我有一个包含另一个类的 shared_ptr 的类。我在类的构造函数中设置 shared_ptr。当我编译它时,我得到一个对我来说看起来很奇怪的错误。这是完整的代码:

#include <iostream>
#include <boost/shared_ptr.hpp>

using namespace std;

class MyClass
{
public:
int _i;

MyClass(int arg) : _i(arg) { }
};

class MyClassPtr
{
public:
boost::shared_ptr<MyClass*> _shptr;

//constructor using initialization list
MyClassPtr(boost::shared_ptr<MyClass*> arg) : _shptr(arg) { }
};

int main()
{
boost::shared_ptr<MyClass> sp(new MyClass(123));

//error C2664: 'MyClassPtr::MyClassPtr(boost::shared_ptr<T>)' :
// cannot convert parameter 1
// from 'boost::shared_ptr<T>' to 'boost::shared_ptr<T>'
MyClassPtr mc(sp);

return 0;
}

我不明白错误消息中“from 'boost::shared_ptr<T>' to 'boost::shared_ptr<T>'”的部分。如何在 MyClassPtr 构造函数中设置 _shptr 变量?

我正在使用 Boost 1.54

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com