当前位置:小鱼儿玄机1站开奘结果 > 次动作函数 >

C++ delete执行后为什么vector会先动作了?

  有个类,里面有个vector,里面放了几个指针,本来打算在析构函数中把vector里面的指针都delete了。结果执行的时候,杯具了,还没进入析构函数,vector就先被清除掉了,里面的指针指向...

  有个类,里面有个vector,里面放了几个指针,本来打算在析构函数中把vector里面的指针都delete了。结果执行的时候,杯具了,还没进入析构函数,vector就先被清除掉了,里面的指针指向的内容全部丢失,清除不了

  因为清除vector的指令在基类(准确来说是基类有个指针指向的函数,会判断调用它的类是什么),vector在派生类。于是析构的时候就会先把vector清掉,然后基类调用的函数会发现vector无内容可清,自然就执行失败了。这种问题纠结呀。代码就贴不上来了,因为太长,百度不支持展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  这应该是你程序中内存处理的故障。。。。仔细检查一下程序代码,尤其是涉及到指针的地方。,。。最好贴出来,一起探讨

  所以不会出现象你说的问题,应该是你程序其他地方把vector的元素清除掉了.

  展开全部vector是stl里做好的类库,它和你自己定义的类是一样的,在创建的时候初始化在结束的时候被析构

  展开全部vector 是向量容器,与数组非常相似,但向量容器是动态的,随着元素的加入,它会根据需要自动扩充空间以及容纳新的元素。

  vector有自己的删除方法。当一个向量离开作用域时,向量的析构函数将调用向量中元素的析构函数。向量的析构函数先从容器中移走现有的元素,每个元素都调用自身的析构函数。在元素被移走后,向量回收分配给这些元素的内存并返回给操作系统。

http://syn992.com/cidongzuohanshu/285.html
点击次数:??更新时间2019-06-07??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】