小编这次要给大家分享的是详解C++11智能指针中的shared_ptr,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
目前创新互联已为上千多家的企业提供了网站建设、域名、网络空间、网站托管维护、企业网站设计、印台网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。C++中的智能指针首先出现在“准”标准库boost中。
随着使用的人越来越多,为了让开发人员更方便、更安全的使用动态内存,C++11也引入了智能指针来管理动态对象。
在新标准中,主要提供了shared_ptr、unique_ptr、weak_ptr三种不同类型的智能指针。
接下来的几篇文章,我们就来总结一下这些智能指针的使用。
今天,我们先来看看shared_ptr智能指针。
shared_ptr 智能指针
shared_ptr是一个引用计数智能指针,用于共享对象的所有权也就是说它允许多个指针指向同一个对象。这一点与原始指针一致。
先来一段简单的代码,看看shared_ptr的简单使用:
#include#include using namespace std; class Example { public: Example() : e(1) { cout << "Example Constructor..." << endl; } ~Example() { cout << "Example Destructor..." << endl; } int e; }; int main() { shared_ptr pInt(new Example()); cout << (*pInt).e << endl; cout << "pInt引用计数: " << pInt.use_count() << endl; shared_ptr pInt2 = pInt; cout << "pInt引用计数: " << pInt.use_count() << endl; cout << "pInt2引用计数: " << pInt2.use_count() << endl; }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。