摘要: 如果一个类拥有资源(堆,即分配的动态内存),当这个类的对象发生复制时复制了资源的过程就叫深拷贝,而存在资源(堆,即分配的动态内存)但并未复制资源的情况叫浅拷贝。编译器会为类提供一个默认拷贝构造函数就是一个浅拷贝。 浅拷贝存在的问题:类体内的成员需要开辟动态内存来存放资源,复制时如果用浅拷贝只会拷贝指向动态内存的指针,并未实际重新分配一块内存来存放资源,在对象虚构时,会出现两次释放同一块内存,导致运行错误。 浅拷贝: 1 #include "stdafx.h" 2 #include <iostream> 3 4 class Test 5 { 6 public: 7 阅读全文
posted @ 2011-08-08 23:50 ybtyoyo 阅读(222) 评论(0) 推荐(0)
摘要: 1、指针会分配内存区域,而引用不会。2、指针与引用在初始化时不同,具体:指针可以初始化为空,引用则不可以。3、指针指向值可以改变,但是引用一旦跟某个对象绑定,则无法改变。(程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。) 阅读全文
posted @ 2011-08-08 23:32 ybtyoyo 阅读(171) 评论(0) 推荐(0)