91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++11類內初始化怎么實現

發布時間:2021-11-26 14:33:45 來源:億速云 閱讀:156 作者:iii 欄目:大數據

本篇內容主要講解“C++11類內初始化怎么實現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++11類內初始化怎么實現”吧!

重復的初始化代碼

考察下面的代碼:

enum LineStyle{

   lsSolid,

   lsDash,

   lsDot,   

};

class Rect

{

public:

   Rect()

       :left{0}, top{0}, right{0}, bottom{}

       ,style{lsSolid}

   {    

    }

   Rect(int l, int t, int r, int b)

       :left{l}, top{t}, right{r}, bottom{b}

       ,style{lsSolid}

   {

   }

   Rect(int l, int t, int r, int b, LineStyle ls)

       :left{l}, top{t}, right{r}, bottom{b}

       ,style{ls}

   {

   }

private:

   int top;

   int left;

   int right;

   int bottom;

   LineStyle style;   

};

這算是正常不過的代碼,但是有一個不算是問題的問題:初期值為缺省值的數據包成員也需要在構造函數里指定,感覺不好。

類內初始化

C++11中引入了類內初始化器,以減少構造函數和初始化代碼的數量。說起來挺玄,其實就是下面代碼中背景加亮的部分。

class Rect

{

public:

   Rect(int l, int t, int r, int b)

       :left{l}, top{t}, right{r}, bottom{b}

   {  

   }

   Rect(int l, int t, int r, int b, LineStyle ls)

       :left{l}, top{t}, right{r}, bottom{b}

       ,style{ls}

   {

   }

private:

   int top{0};

   int left{0};

   int right{0};

   int bottom{0};

   LineStyle style{lsSolid};   

};

類內初始化之后,構造函數只需要負責和缺省值不同的部分就好,代碼精煉很多了。

到此,相信大家對“C++11類內初始化怎么實現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

拜城县| 乌拉特前旗| 郯城县| 长春市| 天峨县| 芒康县| 永吉县| 隆尧县| 疏附县| 东源县| 大余县| 明光市| 辽宁省| 青海省| 永川市| 百色市| 东乡| 翼城县| 绥江县| 潜山县| 西盟| 苍山县| 赣州市| 秦安县| 金寨县| 昌都县| 永昌县| 济阳县| 岑溪市| 内江市| 和平县| 铜梁县| 商丘市| 南川市| 湖北省| 桐庐县| 嘉兴市| 汉阴县| 阳朔县| 建瓯市| 且末县|