-
深拷贝就是 1申请内存 2就是将传入进来的值拷贝到申请的内存中去查看全部
-
深拷贝的构造方式 就是在拷贝构造函数中分配内存查看全部
-
深拷贝是将堆中内存的数据也进行拷贝(两个数据占用两块neicun) 浅拷贝是简单的数值进行拷贝查看全部
-
浅拷贝是 只是将数据值拷贝过去查看全部
-
p->直接加元素属性 后面不加索引时时直接索引第一个元素查看全部
-
在释放掉对象成员指针的时候,应该先释放掉堆中的内存,然后再释放掉line这个对象。 (对象成员指针占4个内存单元) 如果在构造函数中,new出来两个Coordinate对象,这两个对象都在堆中,而不在line中查看全部
-
代理类的介绍查看全部
-
用sizeof()算对象所占内存大小 用对象成员指针可以使所占内存单元减少查看全部
-
对象成员指针: 原来: Coordinate m_pCoorA;---->对象成员 Coordinate *m_pCoorA;----->对象成员指针 初始化的时候和对象成员初始化一样:使用初始化列表进行初始化 Line::Line():m_pCoorA(NULL),m_pCoorB(NULL) { } //指针:可以赋值NULL 也可以进行普通的初始化 Line::Line()//相当于从构造函数中,堆中申请内存 { m_pCoorA = new Coordinate(1,2); m_pCoorB = new Coordinate(3,4);//指针指向两个坐标对象 } Line::~Line()//需要从析构函数中把内存释放掉 { delete m_pCoorA; delete m_pCoorB; }查看全部
-
在栈中定义对象指针 Coordinate *p2 = &p1; 使得p2可以指向p1的内存了查看全部
-
堆: 使用new,就自动调用后面相对应的构造函数。 而C语言中的malloc则是单纯地分配内存查看全部
-
堆(指针分配内存) 使用new分配一块新内存,实际上就是分配一块由数据成员的内存。 访问方法: p->m_iX 或者(*p).m_iX *p使指针变成一个对象,进而访问其数据成员查看全部
-
应该的代码~~ 在对对象进行拷贝的时候,不是简单的做值的拷贝,而是将堆中内存的数据类型也进行依次的值的拷贝【深拷贝】查看全部
-
不应该只是将内存的地址简单地拷贝过来,而是将内存中的每一个元素依次拷贝过来查看全部
-
Array(const Array& arr) { m_iCount=arr.m_iCount; m_pArr=arr.m_pArr; } 其中,m_pArr是指针。 存在问题: 1.在调用拷贝构造函数的时候两者指向同一块内存。 在arr2调用这块内存的时候,这块内存就会被重写而覆盖掉之前的arr1中的内存 2.由于arr1的这块内存已经为了防止泄露而被释放掉了一次,arr2的指向同一块内存,后来又被释放一次。同一块内存被释放掉了两次,此时计算机会崩溃。(程序崩溃:错误信息难以理解)查看全部
举报
0/150
提交
取消