
智能指针有3类 1. shared_ptr
: 多个指针指向一个对象,此类指针有一个关联的计数器,称为引用计数,表示指向这个对象的指针的数,当没有指针指向这个对象后,就会自动释放自己管理的对象。 2. unique_ptr
: 只有这个指针指向这个对象 3. weak_ptr
: 指向shared_ptr
管理的对象
对于动态指针中p
与p.get()
根据代码运行 发现两者输出相同,都可以额表示指针?但是p可以用作条件判断。1
2
3
4int main() {
shared_ptr<string> p1 = make_shared<string>("rua");
cout << p1 << endl << p1.get() << endl;
}
为什么要用动态对象呢?
1. 可以共享数据,允许多个对象一起用