码迷,mamicode.com
首页 > 编程语言 > 详细

c++指针随笔1

时间:2016-06-06 12:09:03      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

#include "stdafx.h"
#include <iostream>
#include <map>
using namespace std;
using std::map;

class CA;
typedef map<int,CA*> MAP;


class CA {
public:
    int a;
};

int _tmain(int argc, _TCHAR* argv[])
{
    MAP map;
    for(int i=0;i<2;i++)
    {
        CA* pA = new CA;
        pA->a = 1;
        map[i] = pA;
    }

    MAP::iterator it = map.begin();
    while(it != map.end())
    {
        CA* pA = it->second;
         delete pA;   
         pA = NULL;    //pA地址问NULL,但是 it->second的地址不为NULL;因此如果没有进行erase的话,严格意义来讲应该开启下面这句话,避免map内部无法准确的使用空值判断;
//        it->second = NULL;
        it ++;
    }


    it = map.begin();
    while(it != map.end())
    {
        CA* pA = it->second;
        int a = 0;
        it ++;
    }

    return 0;
}


/*
这里复习一下c++的一些概念:
*pA        就是指针pA所指地址上的数据
pA        就是该指针所指的地址,这个也就是为什么pA=NULL,it->second 不为NULL
&pA        表示该指针的地址
*/

c++指针随笔1

标签:

原文地址:http://www.cnblogs.com/veikin/p/5563030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!