2

我收到此编译错误:

error: invalid conversion from 'const MyClass*' to 'MyClass*'

这是代码:

std::tr1::shared_ptr<MyClass> myClassA;
const MyClass* myClassB;
myClassA = std::tr1::shared_ptr<MyClass>(myClassB); // error here

我想我理解错误,只是不知道如何解决。我需要 myClassB 成为 const 那么如何将 classB 转换/复制到 shared_ptr?

4

2 回答 2

8

您需要一个指向 const 对象的共享指针:

std::tr1::shared_ptr<const MyClass> myClassA;
                     ^^^^^
于 2012-07-14T15:00:01.580 回答
0

您不能从 const MyClass 转到 MyClass。

myClassA = std::tr1::shared_ptr< **const** MyClass>(myClassB);
于 2012-07-14T15:02:12.877 回答