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

做网站的市场开源建站工具

做网站的市场,开源建站工具,房装修网,海外培训视频网站建设C 中的拷贝方式 1. 深拷贝#xff08;Deep Copy#xff09; 定义 深拷贝会复制对象的全部内容#xff0c;包括对象中动态分配的资源。新对象与原对象完全独立#xff0c;任何对新对象的修改都不会影响原对象。 实现 通常通过显式的拷贝构造函数或拷贝赋值运算符#…C 中的拷贝方式 1. 深拷贝Deep Copy 定义 深拷贝会复制对象的全部内容包括对象中动态分配的资源。新对象与原对象完全独立任何对新对象的修改都不会影响原对象。 实现 通常通过显式的拷贝构造函数或拷贝赋值运算符手动分配新内存并复制资源。 示例 #include iostream #include cstringclass MyClass {char* data;public:MyClass(const char* str) {data new char[strlen(str) 1];strcpy(data, str);}// 深拷贝构造函数MyClass(const MyClass other) {data new char[strlen(other.data) 1];strcpy(data, other.data);}~MyClass() {delete[] data;}void print() const {std::cout data \n;} };int main() {MyClass obj1(Hello);MyClass obj2 obj1; // 调用深拷贝构造函数obj2.print(); // 输出: Helloreturn 0; }特点 1.深拷贝是安全的原对象和新对象的资源完全独立。 2.对象中有动态资源时需要手动实现深拷贝。 3.较耗费性能特别是资源较大时。 2. 浅拷贝Shallow Copy 定义 浅拷贝只复制对象中的指针或引用而不复制它们所指向的实际资源。新对象和原对象共享同一块资源。 问题 如果不小心释放了共享的资源会导致其他对象指向无效的内存产生 悬挂指针Dangling Pointer。 示例 #include iostream #include cstringclass MyClass {char* data;public:MyClass(const char* str) {data new char[strlen(str) 1];strcpy(data, str);}// 默认浅拷贝未自定义拷贝构造函数时MyClass(const MyClass other) default;~MyClass() {delete[] data;}void print() const {std::cout data \n;} };int main() {MyClass obj1(Hello);MyClass obj2 obj1; // 浅拷贝指向同一资源obj1.print(); // 输出: Helloobj2.print(); // 输出: Helloreturn 0; }特点 1.浅拷贝速度快因为它仅复制指针的地址。 2.容易产生悬挂指针或资源泄漏问题。 3. 移动语义Move Semantics 定义 移动语义会将资源从一个对象“转移”到另一个对象而不会创建或复制新的资源。原对象的资源被“搬走”进入“有效但未定义状态”。 实现 使用移动构造函数和移动赋值运算符。 示例 #include iostream #include utility // for std::moveclass MyClass {char* data;public:MyClass(const char* str) {data new char[strlen(str) 1];strcpy(data, str);}// 移动构造函数MyClass(MyClass other) noexcept : data(other.data) {other.data nullptr; // 释放原对象的所有权}~MyClass() {delete[] data;}void print() const {std::cout (data ? data : Empty) \n;} };int main() {MyClass obj1(Hello);MyClass obj2 std::move(obj1); // 调用移动构造函数obj2.print(); // 输出: Helloobj1.print(); // 输出: Emptyreturn 0; }特点 1.移动语义速度快不需要深拷贝。 2.常用于临时对象或需要高效转移资源的场景。 3.需要实现移动构造函数和移动赋值运算符。 4. 对比总结 拷贝方式深拷贝浅拷贝移动语义实现复杂度较高需要手动复制资源简单默认行为需要手动实现移动构造和赋值效率慢涉及内存分配和复制快只复制指针非常快只转移资源所有权资源独立性独立的资源副本共享资源资源被转移独占适用场景资源独立且需频繁复制快速拷贝无需独立资源资源需要转移时高效操作 5.总结 深拷贝适用于需要独立资源的场景比如资源管理类文件、内存等。浅拷贝简单但容易导致问题仅适用于无需独立资源的情况。移动语义是现代 C 的高效资源管理方式适合转移资源的场景。
http://www.w-s-a.com/news/295106/

相关文章:

  • 邹平做网站哪家好自动点击器app
  • 南阳seo网站排名优化wordpress文章对游客不显示
  • 网站301什么意思湛江市seo网站设计报价
  • 免费建造网站化妆品网络营销方案
  • 建公司网站wordpress the content
  • 网站的站点的管理系统建设银行网站注册企业
  • 长春火车站是哪个站做微商哪个网站有客源
  • 亚马逊培训费用一般多少seo专业培训课程
  • 做推文封面图网站南宁高端网站建设
  • 天津网站搜索排名做电影免费ppt模板下载网站
  • 襄樊最好网站建设价格网站建设与设计 毕业设计
  • 网站推广广告词大全集网站建设相对路径
  • 甘肃省铁路投资建设集团有限公司网站域名怎么实名认证
  • 企业网站建设的层次返利网站建设
  • 竞价单页网站制作中小企业网站建设问题
  • 响应式网站源码学校网站制作多少钱
  • 营销型网站建设需要懂什么网站建站四件套是什么
  • 廊坊哪里有制作手机网站的区块链开发语言
  • 找建设项目的网站装企工长网站开发
  • 戴尔网站建设成功方正网站制作
  • 怎么买网站域名wordpress 视频站模版
  • 厦门官网建设公司杨和关键词优化
  • 怎么做网约车seo自动优化软件下载
  • 遵义市住房和城乡建设局官方网站网站备案 自己的服务器
  • 分销系统价格多少北京网站优化平台
  • 怎样做旅游公司的网站泉州网站建设方案优化
  • 手机网站页面范例个人网站做淘宝客违规
  • 做一套网站开发多少钱SEO做得最好的网站
  • 咸宁做网站的公司那家便宜福建建设注册管理中心网站
  • 网站建设工作汇报黑科技广告推广神器