37)智能指针(就是自动delete空间)

1)问题引入:

      在java或者在C++中,一旦你new一个东西,那么必然有一个delete与之对应,比如:

 1 int main()
 2 {
 3      int* p= new int();
 4      
 5      *p=10 6 
 7       delete p;   
 8 
 9 
10      return 011 }

   但是  我现在有一个  特别  特别智能的指针   ---名字叫  智能指针  可以  不用我们手动释放  去自己释放,那么怎么创建和使用这个智能指针呢?

 

其实这个智能指针就类似于  JAVA的  new原理,也是你只要创建了,就可以用,但是回收 你不用管。

 

2)智能指针的创建和使用

    (1)智能指针存在头文件  <mrmary>  中

    (2)创建和使用:

 1 #include<iostream>
 2 #include<memory>
 3 using namespace std;
 4 int main()
 5 {
 6     //等同于 int *p= new int();
 7     auto_ptr<int> pt(new int);
 8     //这个pt后面括号里面的是 返回一个地址的东西   new int 返回一个地址  给了pt
 9     //那个尖括号< > 里面的是 这个pt指针的数据类型 你是int  就是<int> 你是char  
10     //就是  <char>  你是类A  就是 <A>
11 
12 
13     //比如  和 A  a=  new  A(10)类似的代码是:
14 
15     // auto_ptr<A>  pt(new A(10));
16     *pt=10;
17     cout<<*pt<<endl;
18 
19 
20 }

 

 

posted @ 2018-01-10 17:01  小油菜1  阅读(563)  评论(0编辑  收藏  举报