国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C++箴言:讓=返回一個*this的引用

2019-11-17 05:12:46
字體:
供稿:網(wǎng)友

  關(guān)于賦值的一件有意思的事情是你可以把它們穿成一串。

  
  int x, y, z;

  x = y = z = 15; // chain of assignments

  另一件有意思的事情是賦值是右結(jié)合的,所以,上面的賦值串可以解析成這樣:
  

  x = (y = (z = 15));

  這里,15 賦給 z,然后將這個賦值的結(jié)果(最新的 z)賦給 y,然后將這個賦值的結(jié)果(最新的 y)賦給 x。

  這里實現(xiàn)的方法就是讓賦值運(yùn)算符返回一個左側(cè)參數(shù)的引用,而且這就是當(dāng)你為你的類實現(xiàn)賦值運(yùn)算符時應(yīng)該遵守的約定:

  

  class Widget {

   public:

    ...

    Widget& Operator=(const Widget& rhs) // return type is a reference to

    { // the current class

     ...

     return *this; // return the left-hand object

    }

   ...

  };
  這個約定適用于所有的賦值運(yùn)算符,而不僅僅是上面那樣的標(biāo)準(zhǔn)形式。因此:

  class Widget {

   public:

    ...

    Widget& operator+=(const Widget& rhs) // the convention applies to

    { // +=, -=, *=, etc.

     ...

     return *this;

    }

  Widget& operator=(int rhs) // it applies even if the

    { // operator’s parameter type

     ... // is unconventional

     return *this;

    }

    ...

  };

  這僅僅是一個約定,代碼并不會按照這個意愿編譯。無論如何,這個約定被所有的內(nèi)建類型和標(biāo)準(zhǔn)庫中(或者即將進(jìn)入標(biāo)準(zhǔn)庫)的類型(例如,string,vector,complex,tr1::shared_ptr 等)所遵守。除非你有好的理由作些不同的事情,否則,不要破壞它。

  Things to Remember

  ·讓賦值運(yùn)算符返回一個 *this 的引用。 QQread.com 推出游戲功略 http://www.qqread.com/netgame/game/index.Html 魔獸世界 跑跑卡丁車 街頭籃球 水滸Q傳 龍與地下城OL 征服  軒轅劍5 FIFA07 熱血江湖 大唐風(fēng)云 夢幻西游 武林外傳


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 商水县| 清远市| 钟山县| 大埔区| 刚察县| 鸡西市| 高密市| 湘乡市| 武隆县| 都兰县| 财经| 镶黄旗| 丽水市| 新田县| 合山市| 顺昌县| 蒲江县| 中江县| 分宜县| 西乌珠穆沁旗| 迁安市| 西畴县| 上犹县| 德庆县| 云和县| 石门县| 台中市| 四平市| 大埔县| 天全县| 龙胜| 贵定县| 桐乡市| 方城县| 广水市| 嵊州市| 涪陵区| 正镶白旗| 晋宁县| 微山县| 绥江县|