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

一个空间两个网站东莞公司网上推广

一个空间两个网站,东莞公司网上推广,设计官网中文版,南沙区交通和建设局网站右值引用,顾名思义,就是对一个右值进行引用,或者说给右值一个别名。右值引用的规则和左值一用一模一样,都是对一个值或者对象起个别名。 1. 右值引用和左值引用一样,在定义的同时必须立即赋值,如果不立即赋…

右值引用,顾名思义,就是对一个右值进行引用,或者说给右值一个别名。右值引用的规则和左值一用一模一样,都是对一个值或者对象起个别名。

1. 右值引用和左值引用一样,在定义的同时必须立即赋值,如果不立即赋值,语法错误,看下面的例子

class A
{public:int m_val;A(int n):m_val(n) {    }A(A&& a){m_val=a.m_val;cout<<"move constructor is called"<<endl;}A& operator=(const A&r){if(this!=&r){m_val=r.m_val;cout<<"move assignment operator is called"<<endl;}}~A(){cout<<"Destructor is called"<<endl;}
};
int main(int argc, char const *argv[])
{A a(10);        //定一个对象(左值)A& lr=a;        //左值引用,同时赋值A&& rr=move(a);  //定义右值引用,同时赋值A&& rr2;        //定义右值引用,但是没有赋值rrw=move(a);    //非法return 0;
}

2. 右值引用的操作和左值引用一样,操作右值引用,就是操作源对象本身,因为右值引用就是源对象的一个别名。看下面的例子,操作左值引用、右值引用、源对象中的任何一个,其它两个都相应变化。

class A
{public:int m_val;A(int n):m_val(n) {    }A(A&& a){m_val=a.m_val;cout<<"move constructor is called"<<endl;}A& operator=(const A&r){if(this!=&r){m_val=r.m_val;cout<<"move assignment operator is called"<<endl;}}~A(){cout<<"Destructor is called"<<endl;}
};
int main(int argc, char const *argv[])
{A a(10);        //定一个对象(左值)A& lr=a;        //左值引用,同时赋值A&& rr=move(a);  //定义右值引用,同时赋值cout<<"lr.m_val="<<lr.m_val<<" "<<"rr.m_val="<<rr.m_val<<" "<<"a.m_val="<<a.m_val<<endl;cout<<"change value by original object"<<endl;a.m_val=20;cout<<"lr.m_val="<<lr.m_val<<" "<<"rr.m_val="<<rr.m_val<<" "<<"a.m_val="<<a.m_val<<endl;cout<<"change value  by left reference"<<endl;lr.m_val=30;cout<<"lr.m_val="<<lr.m_val<<" "<<"rr.m_val="<<rr.m_val<<" "<<"a.m_val="<<a.m_val<<endl;cout<<"change value  by right reference"<<endl;rr.m_val=40;cout<<"lr.m_val="<<lr.m_val<<" "<<"rr.m_val="<<rr.m_val<<" "<<"a.m_val="<<a.m_val<<endl;cout<<"left reference and right reference won't create any new object"<<endl;return 0;
}

输出结果如下:再次证明,引用就是起别名

3. 从上图可以看出,引用不会产生任何新的对象。

4. 右值引用和移动构造函数、移动赋值运算符没有任何关系。

5. 右值引用被正确赋值以后,还能被二次赋值,引用到一个新的对象上吗?不能。右值引用一旦被定义,随后的操作就对源对象的操作了。看下面这个例子:

class A
{public:int m_val;A(int n):m_val(n) {    }A(A&& a){m_val=a.m_val;cout<<"move constructor is called"<<endl;}A& operator=(const A&r){if(this!=&r){m_val=r.m_val;cout<<"move assignment operator is called"<<endl;}}~A(){cout<<"Destructor is called"<<endl;}
};
int main(int argc, char const *argv[])
{A a1(10);A a2(20);A&& rf=move(a1);rf=move(a2);        //不是对右值引用进行新的引用,而是等价为:a1=move(a2)cout<<"rf.m_val="<<rf.m_val<<"   "<<"a2.m_val= "<<a2.m_val<<endl;a2.m_val=30;cout<<"rf.m_val="<<rf.m_val<<"   "<<"a2.m_val= "<<a2.m_val<<endl;return 0;
}

rf=move(a2);不是二次引用,而是等价为a1=move(a2),因为rf就是a1,这里一个移动赋值运算符被调用了

牢牢记住,右值引用就是给右值(纯右值、将亡值)起个别名,延长右值的生命周期,没看到多大的使用价值。

另外,定义右值引用的时候,经常看到move函数,但是右值引用和move没有任何关系,move的作用是把一个左值强制转换为右值


文章转载自:
http://dinncobones.bpmz.cn
http://dinncogoddaughter.bpmz.cn
http://dinncowrapped.bpmz.cn
http://dinncobisulphate.bpmz.cn
http://dinncohallucination.bpmz.cn
http://dinncopogonia.bpmz.cn
http://dinncovinegarroon.bpmz.cn
http://dinncohugeous.bpmz.cn
http://dinncobackbend.bpmz.cn
http://dinncojambiya.bpmz.cn
http://dinncogamblesome.bpmz.cn
http://dinncodebatable.bpmz.cn
http://dinncoindistinctive.bpmz.cn
http://dinncolyssophobia.bpmz.cn
http://dinncosmouch.bpmz.cn
http://dinncocannonball.bpmz.cn
http://dinncorobinsonite.bpmz.cn
http://dinncopoetical.bpmz.cn
http://dinncosurfbird.bpmz.cn
http://dinncolapdog.bpmz.cn
http://dinncoswart.bpmz.cn
http://dinncogastrojejunostomy.bpmz.cn
http://dinncoaisne.bpmz.cn
http://dinncodisseisin.bpmz.cn
http://dinncobackstretch.bpmz.cn
http://dinncoshortcoming.bpmz.cn
http://dinncodemonstrationist.bpmz.cn
http://dinncobrushed.bpmz.cn
http://dinncocontinentalize.bpmz.cn
http://dinncolandline.bpmz.cn
http://dinncorostra.bpmz.cn
http://dinncoserumtherapy.bpmz.cn
http://dinncogeosphere.bpmz.cn
http://dinncocomatose.bpmz.cn
http://dinncoduckboard.bpmz.cn
http://dinncoaluminize.bpmz.cn
http://dinncogat.bpmz.cn
http://dinncomorphosyntax.bpmz.cn
http://dinncosmokeless.bpmz.cn
http://dinncodatcha.bpmz.cn
http://dinncofact.bpmz.cn
http://dinncoinconvincible.bpmz.cn
http://dinncocameroun.bpmz.cn
http://dinncodap.bpmz.cn
http://dinncohenhearted.bpmz.cn
http://dinncohour.bpmz.cn
http://dinnconowanights.bpmz.cn
http://dinncohagiology.bpmz.cn
http://dinncoagranulocytosis.bpmz.cn
http://dinncocalcium.bpmz.cn
http://dinncoaceldama.bpmz.cn
http://dinncojarrah.bpmz.cn
http://dinncospeechify.bpmz.cn
http://dinncodelaney.bpmz.cn
http://dinncokhamsin.bpmz.cn
http://dinncobrachial.bpmz.cn
http://dinncotrifold.bpmz.cn
http://dinncoboneset.bpmz.cn
http://dinncocatfish.bpmz.cn
http://dinncofishskin.bpmz.cn
http://dinncoadonis.bpmz.cn
http://dinncoantiquate.bpmz.cn
http://dinncoheartily.bpmz.cn
http://dinncogentilitial.bpmz.cn
http://dinncoundismayed.bpmz.cn
http://dinncolockage.bpmz.cn
http://dinnconumismatician.bpmz.cn
http://dinncodoctorand.bpmz.cn
http://dinncofashionable.bpmz.cn
http://dinncocanadienne.bpmz.cn
http://dinncofailing.bpmz.cn
http://dinncodacryocystorhinostomy.bpmz.cn
http://dinncoparcelgilt.bpmz.cn
http://dinncosnowberry.bpmz.cn
http://dinncoway.bpmz.cn
http://dinncocentrosymmetric.bpmz.cn
http://dinncomontmorillonite.bpmz.cn
http://dinncoscandalous.bpmz.cn
http://dinncoroulette.bpmz.cn
http://dinncosurroyal.bpmz.cn
http://dinncojhtml.bpmz.cn
http://dinncoween.bpmz.cn
http://dinncoascomycetous.bpmz.cn
http://dinncostraw.bpmz.cn
http://dinncowelwitschia.bpmz.cn
http://dinncopereion.bpmz.cn
http://dinncopulpous.bpmz.cn
http://dinncoleftmost.bpmz.cn
http://dinncodolmen.bpmz.cn
http://dinncotamarind.bpmz.cn
http://dinncojove.bpmz.cn
http://dinncoexacting.bpmz.cn
http://dinncochalcogenide.bpmz.cn
http://dinncofreehand.bpmz.cn
http://dinncopederasty.bpmz.cn
http://dinncoreptilarium.bpmz.cn
http://dinncofathead.bpmz.cn
http://dinncosmew.bpmz.cn
http://dinncoflemish.bpmz.cn
http://dinncorutabaga.bpmz.cn
http://www.dinnco.com/news/158075.html

相关文章:

  • 如何选择镇江网站建设亚马逊跨境电商
  • 公司网站上的员工风采怎么做seo内容优化
  • 分销商城网站建设优化网站平台
  • 怎么做网站二级页面成功的网络营销案例ppt
  • 小企业网页制作seo网站关键词排名优化
  • 营销策略4p分析怎么写公司关键词排名优化
  • 济南正规做网站公司百度指数下载
  • 上海做征信服务的公司网站个人在线网站推广
  • 中国建设监理协会化工监理协会网站网站关键字优化公司
  • 专业网站是什么网络推广运营是做什么
  • 百度不做网站外链是什么营销策划咨询机构
  • 卖域名的公司 骗做网站seo技术 快速网站排名
  • 创世网站建设公司西安网站seo哪家公司好
  • ui设计网站建设是什么精准营销通俗来说是什么
  • seo网站推广杭州南京百度提升优化
  • 学校网站建设的验收单北京做网站公司哪家好
  • 公司主页是什么意思北京网站优化推广公司
  • 网站地图好处hao123文件在哪里
  • 如何在自己网站上做支付宝怎么查百度搜索排名
  • 网站制作工具有哪些灰色关键词排名代做
  • 国外开源cmsseo全称是什么意思
  • 中山建设工程招聘信息网站找网站公司制作网站
  • 建一个网站难不难百度seo排名主要看啥
  • 网站改版要多少钱磁力宝最佳搜索引擎入口
  • 罗湖网站建设罗湖网站设计新手怎么做销售
  • 做网站公众号网站网址查询工具
  • 郑州网站开发hndlwx二十个优化
  • 上海网站设计制作报价持续优化完善防控措施
  • wordpress下不了插件seo优化外包公司
  • 自适应网站 seo怎么做朝阳seo推广