如何修复:错误:从'const MyClass *'到'MyClass *'的无效转换

时间:2012-07-14 14:58:27

标签: c++ casting shared-ptr

我收到了这个编译错误:

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?

2 个答案:

答案 0 :(得分:8)

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

std::tr1::shared_ptr<const MyClass> myClassA;
                     ^^^^^

答案 1 :(得分:0)

你不能从const MyClass转到MyClass。

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