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 に答える