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

kan*_*nso 2 c++ casting shared-ptr

我收到这个编译错误:

error: invalid conversion from 'const MyClass*' to 'MyClass*'
Run Code Online (Sandbox Code Playgroud)

这是代码:

std::tr1::shared_ptr<MyClass> myClassA;
const MyClass* myClassB;
myClassA = std::tr1::shared_ptr<MyClass>(myClassB); // error here
Run Code Online (Sandbox Code Playgroud)

我想我理解错误,只是不知道如何解决.我需要myClassB是一个const,所以如何将classB转换/复制到shared_ptr?

Mik*_*our 8

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

std::tr1::shared_ptr<const MyClass> myClassA;
                     ^^^^^
Run Code Online (Sandbox Code Playgroud)