摘要:
智能指针是存储指向动态分配对象指针的类,用于控制对象的生存期,能够确保自动正确的销毁动态分配的对象,防止内存泄露。HasPtr 在其他方面的行为与普通指针一样。具体而言,复制对象时,副本和原对象将指向同一基础对象,如果通过一个副本改变基础对象,则通过另一对象访问的值也会改变。 用智能指针的原因:智能指针主要设计目的是避免悬垂指针。 HasPtr 智能指针类需要一个析构函数来删除指针,但是,它的析构函数不能无条件地删除指针。如果两个 HasPtr 对象指向同一基础对象,那么,在两个对象都撤销之前, 我们并不希望删除基础对象。 为了编写析构函数, 需要知道这个HasPtr对象是否为指向给定对象的. 阅读全文
摘要:
关于Vector中存放指针的问题,在进行清空的时候比较安全的一种做法是: std::vector ClassNameVec; ...push_back(new ClassName()); std::vector::iterator ClassNameIt = ClassNameVec.begin(); for(;ClassNameIt != ClassNameVec.end();++ClassNameIt) { if(*ClassNameIt != NULL) { delete *ClassNameIt; *ClassNameIt = NULL; } } ClassNameV... 阅读全文