ste*_*fen 6 c++ smart-pointers c++11
可能重复:
我使用哪种指针?
有许多专业人士赞成C++ 11的智能指针:它们更安全,功能更强,范围更明显等.
"经典"C是否像指针一样
class C{};
C c;
C* c_p = &c;
Run Code Online (Sandbox Code Playgroud)
现在已经过时了?他们甚至被弃用了吗?或者是否存在C指针仍然有意义的用例?
编辑:带有智能指针的代码片段:
class C{};
C c;
std::shared_ptr<C> c_p(new C());
Run Code Online (Sandbox Code Playgroud)
编辑:感谢您指出副本.从Xeo的回答:
使用哑指针(原始指针)或对资源的非拥有引用的引用,当>你知道资源将比引用对象/范围更长时.当您需要可空性或可重置性时,首选引用和>使用原始指针.
如果这就是全部,我接受这个问题已被关闭.
bam*_*s53 13
有一些用例,原始指针是有意义的.
现代代码中的原始指针是"非拥有"指针.这意味着代码不应该执行任何需要或拥有指向对象的所有权.例如,它不应该是deleted,用于构造拥有的智能指针,或者保存在当前上下文之外.
绝对不.智能指针适用于特殊情况,不适用于一般用途.根据应用程序和编程风格,大多数指针仍然是原始指针; 事实上,在某些情况下,可能根本没有智能指针.