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

引导交互 网站大连html5网站建设价格

引导交互 网站,大连html5网站建设价格,网页的设计与应用的论文,网店C中不允许复制的类 假设您需要模拟国家的政体。一个国家只能有一位总统,而 President 类面临如下风险: President ourPresident; DoSomething(ourPresident); // duplicate created in passing by value President clone; clone ourPresident; // dup…

C++中不允许复制的类

假设您需要模拟国家的政体。一个国家只能有一位总统,而 President 类面临如下风险:

President ourPresident;
DoSomething(ourPresident); // duplicate created in passing by value
President clone;
clone = ourPresident; // duplicate via assignment

显然,需要避免这样的情况发生。编写操作系统时,您需要模拟只有一个的局域网、处理器等,为此需要避免这样的资源被复制。如果您不声明复制构造函数, C++将为您添加一个公有的默认复制构造函数,这破坏了您的设计,威胁着您的实现。然而, C++提供了实现这种设计范式的解决方案。
要 禁 止 类 对 象 被 复 制 , 可 声 明 一 个 私 有 的 复 制 构 造 函 数 。 这 确 保 函 数 调 用DoSomething(OurPresident)无法通过编译。为禁止赋值,可声明一个私有的赋值运算符。
因此,解决方案如下:

class President
{
private:President(const President&); // private copy constructorPresident& operator= (const President&); // private copy assignment operator// … other attributes
};

无需给私有复制构造函数和私有赋值运算符提供实现,只需将它们声明为私有的就足以实现您的目标:确保 President 的对象是不可复制的。

所谓移动语义,指的就是以移动而非深拷贝的方式初始化含有指针成员的类对象。简单的理解,移动语义指的就是将其他对象(通常是临时对象)拥有的内存资源“移为已用”。

以前面程序中的 demo 类为例,该类的成员都包含一个整形的指针成员,其默认指向的是容纳一个整形变量的堆空间。当使用 get_demo() 函数返回的临时对象初始化 a 时,我们只需要将临时对象的 num 指针直接浅拷贝给 a.num,然后修改该临时对象中 num 指针的指向(通常另其指向 NULL),这样就完成了 a.num 的初始化。

事实上,对于程序执行过程中产生的临时对象,往往只用于传递数据(没有其它的用处),并且会很快会被销毁。因此在使用临时对象初始化新对象时,我们可以将其包含的指针成员指向的内存资源直接移给新对象所有,无需再新拷贝一份,这大大提高了初始化的执行效率。

由于 C++的特征和需求,有些情况下对象会自动被复制。请看下面的代码:

class MyString
{// pick implementation from Listing 9.9
};MyString Copy(MyString& source) // function
{MyString copyForReturn(source.GetString()); // create copyreturn copyForReturn; // return by value invokes copy constructor
}int main()
{MyString sayHello ("Hello World of C++");MyString sayHelloAgain(Copy(sayHello)); // invokes 2x copy constructorreturn 0;
}

该文章会更新,欢迎大家批评指正。

推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程

http://www.yayakq.cn/news/781765/

相关文章:

  • 南宁网站设计建设学校部门网站的建设
  • 做图库网站需要多少钱如何快速网站备案
  • 购买网站服务器福州做网站设计
  • 自由设计师网站泽成杭州seo网站推广排名
  • 自己做一个外贸网站怎么样成都网站建设推荐到访率公司
  • 静宁县建设局网站百度关键词搜索
  • 不利用网站怎么做调查问卷嘉定品牌网站建设
  • 销售珍珠网站建设策划书o2o商城系统
  • wp网站做企业站好不好网站建设摊销时间是多久
  • 公司网站与营销网站在栏目上的不同2017年网站建设公司
  • 衡水网站制程序开发的基本步骤是什么
  • 网站建设评估报告长沙关键词优化
  • 58商机创业网南阳做网站优化的公司
  • .php的网站是怎么做的软件定制 杭州
  • 网站制作里的更多怎么做网站设计模板怎么使用
  • 沧州网站建设优化上海松江 网站建设公司
  • 东莞网站设计建设最牛餐饮营销手段
  • wordpress做过的大型网站吗护肤品网站优化案例
  • 网站搜索引擎优化主要方法做ppt的网站 知乎
  • appstore下载安卓版seo查询工具源码
  • 怎么做学校子网站免费做网站教程
  • 重庆建设机电有限公司网站海外建站公司
  • ipv6可以做网站吗wordpress图片缩放
  • 做视频网站怎么备案关注公众号阅读全文wordpress
  • 手机网站建设与制作备案的网站做跳转不影响备案把
  • 昆明制作手机网站网站文章内链怎么做
  • 沈阳网站建设推广平台wordpress给关键词加内链的方法
  • 整站seo技术搜索引擎优化小面网站建设
  • 太原企业模板建站页面模板图片大小
  • 石桥铺网站建设公司一人办厂千元投资