关于容器中指针类型的指针变量的疑惑
用C++容器的时候对于指针类型的指针变量很不理解,如:
list<ThreadItem*>* m_pThreadItemList;//定义
m_pThreadItemList=new list<ThreadItem*>;//初始化
ThreadItem* pItem=new ThreadItem();//引用
m_pThreadItemList->push_back(pItem);
--------------------------------
令我疑惑的就是变量初始化时不是新建了一个节点吗(m_pThreadItemList=new list<ThreadItem*>;)?
那么之后引用时不是已经有一个空的节点了吗?
如果我用m_pThreadItemList=NULL;初始化,那更说不过去,一个指针更不能当成容器对象来引用方法了,求解,谢谢!
[解决办法]
list<ThreadItem*>* m_pThreadItemList;//定义指针
m_pThreadItemList=new list<ThreadItem*>;//创建list对象,list创建完了是个空集合,没有元素
ThreadItem* pItem=new ThreadItem();//创建ThreadItem对象,此时ThreadItem对象和list对象无关
m_pThreadItemList->push_back(pItem);//把刚创建ThreadItem对象放进list里,此时list才有第一个元素
[解决办法]
(m_pThreadItemList=new list<ThreadItem*>;)
这一句不能说明建立了结点,只能说给这个对象分配了内存空间
而你m_pThreadItemList=NULL的话是不能叫初始化的
因为你没有为这个对象分配内存空间