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

安徽飞亚建设网站网络推广的方法80种

安徽飞亚建设网站,网络推广的方法80种,wordpress网站变灰,建网站维护要多少钱右值引用#xff0c;顾名思义#xff0c;就是对一个右值进行引用#xff0c;或者说给右值一个别名。右值引用的规则和左值一用一模一样#xff0c;都是对一个值或者对象起个别名。 1. 右值引用和左值引用一样#xff0c;在定义的同时必须立即赋值#xff0c;如果不立即赋…右值引用顾名思义就是对一个右值进行引用或者说给右值一个别名。右值引用的规则和左值一用一模一样都是对一个值或者对象起个别名。 1. 右值引用和左值引用一样在定义的同时必须立即赋值如果不立即赋值语法错误看下面的例子 class A {public:int m_val;A(int n):m_val(n) { }A(A a){m_vala.m_val;coutmove constructor is calledendl;}A operator(const Ar){if(this!r){m_valr.m_val;coutmove assignment operator is calledendl;}}~A(){coutDestructor is calledendl;} }; int main(int argc, char const *argv[]) {A a(10); //定一个对象左值A lra; //左值引用同时赋值A rrmove(a); //定义右值引用同时赋值A rr2; //定义右值引用但是没有赋值rrwmove(a); //非法return 0; } 2. 右值引用的操作和左值引用一样操作右值引用就是操作源对象本身因为右值引用就是源对象的一个别名。看下面的例子操作左值引用、右值引用、源对象中的任何一个其它两个都相应变化。 class A {public:int m_val;A(int n):m_val(n) { }A(A a){m_vala.m_val;coutmove constructor is calledendl;}A operator(const Ar){if(this!r){m_valr.m_val;coutmove assignment operator is calledendl;}}~A(){coutDestructor is calledendl;} }; int main(int argc, char const *argv[]) {A a(10); //定一个对象左值A lra; //左值引用同时赋值A rrmove(a); //定义右值引用同时赋值coutlr.m_vallr.m_val rr.m_valrr.m_val a.m_vala.m_valendl;coutchange value by original objectendl;a.m_val20;coutlr.m_vallr.m_val rr.m_valrr.m_val a.m_vala.m_valendl;coutchange value by left referenceendl;lr.m_val30;coutlr.m_vallr.m_val rr.m_valrr.m_val a.m_vala.m_valendl;coutchange value by right referenceendl;rr.m_val40;coutlr.m_vallr.m_val rr.m_valrr.m_val a.m_vala.m_valendl;coutleft reference and right reference wont create any new objectendl;return 0; } 输出结果如下再次证明引用就是起别名 3. 从上图可以看出引用不会产生任何新的对象。 4. 右值引用和移动构造函数、移动赋值运算符没有任何关系。 5. 右值引用被正确赋值以后还能被二次赋值引用到一个新的对象上吗不能。右值引用一旦被定义随后的操作就对源对象的操作了。看下面这个例子 class A {public:int m_val;A(int n):m_val(n) { }A(A a){m_vala.m_val;coutmove constructor is calledendl;}A operator(const Ar){if(this!r){m_valr.m_val;coutmove assignment operator is calledendl;}}~A(){coutDestructor is calledendl;} }; int main(int argc, char const *argv[]) {A a1(10);A a2(20);A rfmove(a1);rfmove(a2); //不是对右值引用进行新的引用而是等价为a1move(a2)coutrf.m_valrf.m_val a2.m_val a2.m_valendl;a2.m_val30;coutrf.m_valrf.m_val a2.m_val a2.m_valendl;return 0; } rfmove(a2);不是二次引用而是等价为a1move(a2)因为rf就是a1这里一个移动赋值运算符被调用了 牢牢记住右值引用就是给右值纯右值、将亡值起个别名延长右值的生命周期没看到多大的使用价值。 另外定义右值引用的时候经常看到move函数但是右值引用和move没有任何关系move的作用是把一个左值强制转换为右值
http://www.w-s-a.com/news/141755/

相关文章:

  • 证券投资网站做哪些内容滨州论坛网站建设
  • 重庆网站建设公司模板广东佛山
  • 中展建设股份有限公司网站做网站备案是什么意思
  • 石家庄网站建设接单wordpress功能小工具
  • 有没有专门做网站的网站镜像上传到域名空间
  • 网站建设中 windows买域名自己做网站
  • 设计英语宁波seo做排名
  • 奉贤网站建设上海站霸深圳几个区
  • c#做网站自已建网站
  • 成都地区网站建设网站设计类型
  • 如何做网站结构优化北京响应式网站
  • 出售源码的网站威海住房建设局网站
  • 网站建设补充报价单网站建设 技术指标
  • 做网站费用分摊入什么科目做网络网站需要三证么
  • 房屋备案查询系统官网杭州排名优化软件
  • 网站地图html网络营销的流程和方法
  • 注册好网站以后怎么做wordpress 获取插件目录下
  • 南京做网站dmooo地方网站需要什么手续
  • 网站开发合同有效期omeka wordpress对比
  • 杭州设计网站的公司广州网站改版领军企业
  • 网站备案系统苏州网站设计网站开发公司
  • 怎么样做微网站著名企业vi设计
  • 三分钟做网站网页设计心得体会100字
  • 网站建设支付宝seo建站是什么
  • 常州做网站的 武进学雷锋_做美德少年网站
  • 怎样建网站赚钱贵州seo和网络推广
  • 创建网站的工具站内seo优化
  • 网站特效 站长查询网网站
  • 百度移动端网站网站建设设计思想
  • 青岛建设官方网站南宁制作企业网站