• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            鍵盤上的舞者

            My Email: marckywu@gmail.com
            隨筆 - 19, 文章 - 0, 評論 - 3, 引用 - 0
            數據加載中……

            顯示構造函數與轉換運算符的合作

            在設計一個Date類的時候,我們使用int類型來表示年份,如果我們需要對年份進行一些特殊的操作(如:檢查,保護等),就很需要定義一個Year類,如下:
            class Year {
                
            int m_y;
            public:
            //explicit限制int到Year的隱式轉換
                explicit Year(int y)
                    : y(m_y) { }
            //Year到int的類型轉換   
                operator int() const 
                    { 
            return m_y; }
                
            //other funtion
            }


            class Date {
            public :
                Date(
            int d, Month m, Year y);
                
            //
            };

            Date d1(
            1987, feb, 21);   //error, 21不能隱式轉換為Year
            Date d2(21, feb, Year(1987)); //ok



            在這里Year就只是包裹住了int,對int提供一層保護而已。由于operator int()的存在,只要需要,Year可以隱式的轉化為int出現運算表達式中參加運算。而通過給構造函數聲明為explicit,就能夠保證,int到Year的轉化只能在明確無誤的情況進行,避免了意外的賦值。

            顯示構造函數和轉換運算符的合作,讓Year可以當int使用,同時又對Year進行一定的保護。。。


            posted on 2009-08-13 14:39 Marcky 閱讀(281) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

            三级三级久久三级久久| 国产高潮国产高潮久久久| 久久久久97国产精华液好用吗| 久久精品无码av| 亚洲综合久久夜AV | 日本精品久久久中文字幕| 精品国产日韩久久亚洲| 久久精品国产精品亚洲毛片| 久久久久久国产精品美女| 久久久久久久综合狠狠综合| 久久精品国产99国产精品澳门| 无码人妻久久一区二区三区蜜桃| 综合久久国产九一剧情麻豆| 亚洲国产综合久久天堂| 国产精品青草久久久久婷婷| 久久久久久久精品妇女99| 久久夜色撩人精品国产小说| 亚洲国产二区三区久久| 久久亚洲欧美日本精品| 久久精品国产亚洲AV久| 欧美午夜A∨大片久久 | 久久93精品国产91久久综合| 97久久综合精品久久久综合| 波多野结衣久久精品| 97精品伊人久久久大香线蕉| 久久精品中文字幕无码绿巨人 | 久久99精品国产麻豆蜜芽| 久久夜色精品国产噜噜噜亚洲AV| 欧美激情一区二区久久久| 久久久久久一区国产精品| 久久久久99精品成人片直播| 精品久久久中文字幕人妻| 性做久久久久久久久久久| 久久精品视频91| 天天做夜夜做久久做狠狠| 久久天天躁狠狠躁夜夜2020老熟妇| 天天综合久久久网| 国产精品欧美久久久久天天影视| 天天影视色香欲综合久久| 青青久久精品国产免费看| 亚洲精品无码久久毛片 |