摘要: 防止自我赋值很有必要 自我赋值的危害: 如果是自我赋值,会把自己的空间释放掉,即当执行delete p后,w.p已经指向一个被释放的内存空间(此时*w.p的内容未知);当执行 p = new int(*w.p);即让p重新指向一个存储了(*w.p)的内存空间,该内存空间内容又是未知的。当再次引用时, 阅读全文
posted @ 2018-05-20 23:59 阿玛尼迪迪 阅读(248) 评论(0) 推荐(0) 编辑
摘要: delete p后,只是释放了指针中存放的地址中的内存空间。但是指针变量p仍然存在(即指针p本身所占有的内存),且p中存放的地址还是原来的地址。 例如: 对一个非空指针delete后,若没有将p赋为NULL,若再次delete的话,会出现问题。 如下代码: 在ubuntu14.04中使用g++进行编 阅读全文
posted @ 2018-05-20 23:20 阿玛尼迪迪 阅读(3042) 评论(0) 推荐(2) 编辑
摘要: 运算符->的重载比较特别,它只能是非静态的成员函数形式,而且没有参数。 1、如果返回值是一个原始指针,那么就将运算符的右操作数当作这个原始指针所指向类型的成员进行访问; 2、如果返回值是另一个类型的实例,那么就继续调用这个返回类型的operator->(),直到有一个调用返回一个原始指针为止,然后按 阅读全文
posted @ 2018-05-20 21:35 阿玛尼迪迪 阅读(1552) 评论(0) 推荐(0) 编辑