首页 > 代码库 > auto_ptr的使用
auto_ptr的使用
初始化:
1 #include<memory> //auto_ptr header2 void f()3 {4 auto_ptr<classA> ptr(new classA);5 }
拷贝:
1 //auto_ptr can‘t be initialized by = operator2 auto_ptr<classA> ptr1(new classA); //OK3 auto_ptr<classA> ptr2 = new classA; //NOK4 ptr1 = auto_ptr<classA>(new int(42)); //OK5 ptr1 = new int 42; //NOK
要点:
1. auto_ptr不可以指向array,因为auto_ptr用的是delete而不是delete []
2. auto_ptr不能作为容器的元素,因为不符合基本的拷贝后两个值要相等的要求,auto_ptr拷贝后,前者交出拥有权
3. const auto_ptr的指向不能有变化,但是其指向的值可以有变化。 p, q都是const auto_ptr, p = q不可以,但是*p = *q是可以的
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。