当前位置: 首页 > news >正文

嘉兴学网站建设个人nas做网站

嘉兴学网站建设,个人nas做网站,网址怎么做小程序类的二维码,北京市装修公司前10名目录 1. 浅拷贝 2. 深拷贝 1. 浅拷贝 浅拷贝只是拷贝一个指针#xff0c;并没有新开辟一个地址#xff0c;拷贝的指针和原来的指针指向同一块地址#xff0c;如果原来的指针所指向的资源释放了#xff0c;那么再释放浅拷贝的指针的资源就会出现错误 对一个已知对象进行拷贝…目录 1. 浅拷贝 2. 深拷贝 1. 浅拷贝 浅拷贝只是拷贝一个指针并没有新开辟一个地址拷贝的指针和原来的指针指向同一块地址如果原来的指针所指向的资源释放了那么再释放浅拷贝的指针的资源就会出现错误 对一个已知对象进行拷贝编译系统会自动调用一种构造函数——拷贝构造函数如果用户未定义拷贝构造函数则会调用默认拷贝构造函数。 举个栗子 #include iostream using namespace std;class Student { private:int num;char *name; public:Student();~Student(); };Student::Student() {name new char(20);cout Student endl;} Student::~Student() {cout ~Student (int)name endl;delete name;name NULL; }int main() {{// 花括号让s1和s2变成局部对象方便测试Student s1;Student s2(s1);// 复制对象}system(pause);return 0; } 执行结果调用一次构造函数调用两次析构函数两个对象的指针成员所指内存相同这会导致什么问题呢name指针被分配一次内存但是程序结束时该内存却被释放了两次会导致崩溃 这是由于编译系统在我们没有自己定义拷贝构造函数时会在拷贝对象时调用默认拷贝构造函数进行的是浅拷贝即对指针name拷贝后会出现两个指针指向同一个内存空间。 所以在对含有指针成员的对象进行拷贝时必须要自己定义拷贝构造函数使拷贝后的对象指针成员有自己的内存空间即进行深拷贝这样就避免了内存泄漏发生。 2. 深拷贝 深拷贝不仅拷贝值还开辟出一块新的空间用来存放新的值即使原先的对象被析构掉释放内存了也不会影响到深拷贝得到的值。在自己实现拷贝赋值的时候如果有指针变量的话是需要自己实现深拷贝的。 举个栗子 #include iostream using namespace std;class Student { private:int num;char *name; public:Student();~Student();Student(const Student s);//拷贝构造函数const防止对象被改变 };Student::Student() {name new char(20);cout Student endl;} Student::~Student() {cout ~Student (int)name endl;delete name;name NULL; } Student::Student(const Student s) {name new char(20);memcpy(name, s.name, strlen(s.name));cout copy Student endl; }int main() {{// 花括号让s1和s2变成局部对象方便测试Student s1;Student s2(s1);// 复制对象}system(pause);return 0; } 执行结果调用一次构造函数一次自定义拷贝构造函数两次析构函数。两个对象的指针成员所指内存不同。 总结浅拷贝只是对指针的拷贝拷贝后两个指针指向同一个内存空间深拷贝不但对指针进行拷贝而且对指针指向的内容进行拷贝经深拷贝后的指针是指向两个不同地址的指针。 再说几句 当对象中存在指针成员时除了在复制对象时需要考虑自定义拷贝构造函数还应该考虑以下两种情形 1.当函数的参数为对象时实参传递给形参的实际上是实参的一个拷贝对象系统自动通过拷贝构造函数实现 2.当函数的返回值为一个对象时该对象实际上是函数内对象的一个拷贝用于返回函数调用处。 3.浅拷贝带来问题的本质在于析构函数释放多次堆内存使用std::shared_ptr可以完美解决这个问题。
http://www.yutouwan.com/news/488822/

相关文章:

  • 如何做网站页面WordPress能装ssr
  • 不关闭网站 备案如何让百度搜到自己的网站
  • 在那个网站做ppt可以赚钱怎么开发app手机软件
  • 电影网站建设哪家便宜怎么把做的网站发布
  • 寿光 网站建设河源公司做网站
  • 谷歌外贸网站推广线上销售模式有哪些
  • 运河建设管理有限公司网站石家庄vi设计公司
  • 用老域名做网站还是新域名网络组建拓扑图
  • 揭东建设局网站做VIP视频网站赚钱
  • php笑话网站源码伪静态网站如何做
  • 企业商城网站开发建设平面设计师求职网
  • 网站建设需要的资料做网站海报用什么app
  • 国内互联网推广嘉兴优化网站哪家好
  • 万网如何购买网站空间品牌网鞋
  • 网站开发组织架构如何建设一个电影网站
  • logo灵感网站在网站建设中什么用于搭建页面结构
  • 泉州市网站制作企业做前端开发需要学什么
  • 网页设计动态效果怎么制作广安seo优化
  • 网站如何做关外贸公司英文网站怎么做
  • 做网站的字体wordpress适合二次开发吗
  • 深圳比较好的网站设计公司wordpress支持什么语言
  • 东营人事考试信息网成都网站优化外包
  • 台州网站制作套餐电影网站怎么做优化
  • dedecms手机网站会员卡怎么制作
  • 做网站网站加载内容慢怎么解决衡阳网站
  • 简单的电商网站wordpress调用小工具
  • 保定网站建设制作新网站注册
  • 怎做网站加强主流网站建设
  • 天津网站seo服务设计网站物理结构怎么做
  • 国外网站有哪些平台国外展览设计网站