Rei*_*aka 3 c++ smart-pointers c++11
在使用托管内存和函数式语言大约10年之后,我终于回到了C++,并且智能指针让我感到困惑.有一半的文档仍然是关于已弃用的auto_ptr.
我正在尝试实施这个相当简单的Bullet "hello world"程序:
int _tmain(int argc, _TCHAR* argv[])
{
auto bp = unique_ptr<btBroadphaseInterface>(new btDbvtBroadphase);
auto cc = unique_ptr<btDefaultCollisionConfiguration>(new btDefaultCollisionConfiguration);
auto disp = unique_ptr<btDispatcher>(new btCollisionDispatcher(cc));
}
Run Code Online (Sandbox Code Playgroud)
该btCollisionDispatcher构造想要一个btCollisionConfiguration*,但我它赋予unique_ptr一个替代.
在这种情况下我通常想做什么?如果有一种"去智能"指针的方法,有些东西告诉我这unique_ptr不是正确使用的智能指针.

在转向其他事情之前,C++是我的首选语言.这有点令人震惊,并且看到所有模式和实践都已完全改变.
R. *_*des 14
有一个get()成员函数,它为您提供由原始指针保存的原始指针unique_ptr.但是,这并不会导致unique_ptr放弃所有权,因此仍然会进行适当的清理(小心存储原始指针!).
还有一个release()成员函数,放弃所有权.这意味着你回到了笨拙的指针之地,清理是你的全部责任.
我无法理解为什么代码首先使用new而不只是使用自动存储对象,但我会假装有一个原因......
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |