Max*_*Max 4 c++ variable-assignment shared-ptr
我有一个有tr1 :: shared_ptr作为成员的类,如下所示:
class Foo
{
std::tr1::shared_ptr<TCODBsp> bsp;
void Bar();
}
Run Code Online (Sandbox Code Playgroud)
在成员函数栏中,我尝试像这样分配它:
bsp = newTCODBsp(x,y,w,h);
然后g ++给了我这个错误
no match for ‘operator=’ in ‘((yarl::mapGen::MapGenerator*)this)->yarl::mapGen::MapGenerator::bsp = (operator new(40u), (<statement>, ((TCODBsp*)<anonymous>)))’
/usr/include/c++/4.4/tr1/shared_ptr.h:834: note: candidates are: std::tr1::shared_ptr<TCODBsp>& std::tr1::shared_ptr<TCODBsp>::operator=(const std::tr1::shared_ptr<TCODBsp>&)
在我的代码中,Foo实际上是yarl::mapGen::MapGenerator.我究竟做错了什么?
打电话.reset(new TCODBsp)或说bsp = std::tr1::shared_ptr(new TCODBsp).共享指针是显式的.您不能只为它们分配ptr类型.
| 归档时间: |
|
| 查看次数: |
2888 次 |
| 最近记录: |