- 博客(2)
- 收藏
- 关注
原创 C++的浅拷贝与深拷贝详细阐述 ?
当用浅拷贝时,新对象的指针与原对象的指针指向了堆上的同一块儿内存,新对象和原对象析构时,新对象先把其指向的动态分配的内存释放了一次,而后原对象析构时又将这块已经释放过的内存再释放一次。所以需要深拷贝来解决问题,当拷贝对象中有对其他资源(如堆、文件、系统等)的引用时(引用可以是指针或引用)时,对象开辟一块新的资源,而不再对拷贝对象中对其他资源的引用的指针或引用进行单纯的赋值。浅拷贝(默认拷贝函数):将原对象或原数组的引用直接赋给新对象,新数组,新对象/新数组只是原对象的一个引用。3.有指针时,必须用深拷贝。
2023-10-29 19:07:48
131
1
原创 C++ 关键字static的作用?
7) 由于 static 修饰的类成员属于类,不属于对象,因此 static 类成员函数是没有 this 指针的,this 指针是指向本对象的指针。正因为没有 this 指针,所以 static类成员函数不能访问非 static 的类成员,只能访问 static 修饰的类成员;2)模块内:static修饰全局变量或全局函数,可以被模块内的所有函数访问,但是不能被模块外的其他函数访问,使用范围限制在声明它的模块内。4) 在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;
2023-10-29 19:03:59
173
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人