- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 return *this和return this
c++中,return this 是返回当前对象的地址,但是return *this是返回当前对象或当前对象的拷贝。如果返回的是引用,那么就是对象本身,否则是对象的拷贝。这样析构的时候还得析构这个拷贝对象。由于拷贝对象中的某些成员可能是copy的原对象(它们的这些成员的地址都是一样的,只是对象本身的地址不一样)的,而这些已经被delete了,那么当在析构这个拷贝对象的时候就会再次delete,发生
2017-02-15 12:38:18 516
原创 VS2013中delete后的0x00008123地址
vs2013中delete之后的地址都变成了0x008123,这是vs编译器做的。真正的标准编译器,delete之后的地址是不会变的,只是这块内存被回收了,虽然该指针仍旧指向这片区域,但是这个指针已经没有了访问这片区域的权限。所以可能需要手动将其置为NULL。否则可以会发生在析构函数中delete两次的情况。另外delete NULL 是合法的,会什么也不做。
2017-02-14 23:11:27 963
转载 c++模板函数声明定义分离编译错误详解
转载自http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.htmlc++模板函数声明定义分离编译错误详解今天看到accelerated c++上有个简单的vector容器的实现Vec,就再vs2008上编译了下: ///// Vec.h #ifndef GUARD_VEC_H
2017-02-14 16:52:52 336
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人