• <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 閱讀(280) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

            99热成人精品免费久久| 久久精品国产亚洲av影院| 国产成人精品久久| 国内精品久久久久久麻豆| 一本大道久久东京热无码AV| 2021最新久久久视精品爱| 久久99国产乱子伦精品免费| 国产午夜福利精品久久| 久久久www免费人成精品| 国产日产久久高清欧美一区| 久久夜色撩人精品国产| 国产韩国精品一区二区三区久久| 国产精品免费久久久久影院| 国产成人精品久久| 久久99精品久久久久久9蜜桃| 一本色道久久HEZYO无码| 久久久精品国产亚洲成人满18免费网站 | 97久久天天综合色天天综合色hd| 精品久久久久久无码免费| 一本一道久久综合狠狠老| 亚洲精品无码久久不卡| 国产视频久久| 99久久精品无码一区二区毛片| 青草国产精品久久久久久 | 久久精品aⅴ无码中文字字幕不卡| 久久夜色tv网站| 精品国产乱码久久久久久1区2区| 一级女性全黄久久生活片免费| 人人狠狠综合久久亚洲婷婷| 亚洲综合日韩久久成人AV| 久久无码专区国产精品发布| 日韩中文久久| 香蕉久久永久视频| 欧美午夜A∨大片久久 | 99久久99久久久精品齐齐| 亚洲AV无码久久寂寞少妇| 久久久久久久久66精品片| 中文成人久久久久影院免费观看| 久久精品无码一区二区app| 久久国产精品二国产精品| 99久久亚洲综合精品网站|