C++ 自动指针 共享指针
Posted 阿汤的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 自动指针 共享指针相关的知识,希望对你有一定的参考价值。
#include <iostream> #include <string> #include <memory> class Item { public: Item(std::string str):name(str){} ~Item(){std::cout<< name << " unitialize!" <<std::endl;} void dump(){std::cout<< "I‘am " << name <<std::endl;} static Item *CreateItem(std::string str) { Item *pItem = new Item(str); return pItem; } private: std::string name; }; int main() { Item *pi = Item::CreateItem("common ptr"); pi->dump(); delete pi; std::auto_ptr<Item> ap1(Item::CreateItem("auto ptr")); ap1.get()->dump(); std::auto_ptr<Item> ap2 = ap1; ap2.get()->dump(); // 此时 auto ptr 对象已经不属于 ap1 std::shared_ptr<Item> sp1(Item::CreateItem("shared ptr")); sp1.get()->dump(); std::shared_ptr<Item> sp2 = sp1; sp2.get()->dump(); return 0; }
以上是关于C++ 自动指针 共享指针的主要内容,如果未能解决你的问题,请参考以下文章
linux C++共享指针(std::shared_ptrstd::make_shared)共享对象,reset()重置共享指针,use_count()查看引用计数
linux C++共享指针(std::shared_ptrstd::make_shared)共享对象,reset()重置共享指针,use_count()查看引用计数