我收到了这个编译错误:
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?
答案 0 :(得分:8)
您需要一个指向const对象的共享指针:
std::tr1::shared_ptr<const MyClass> myClassA;
^^^^^
答案 1 :(得分:0)
你不能从const MyClass转到MyClass。
myClassA = std::tr1::shared_ptr< **const** MyClass>(myClassB);