• <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++

            久久综合综合久久综合| 青青青国产成人久久111网站| 欧美国产成人久久精品| 少妇人妻综合久久中文字幕| 狠狠色丁香婷婷久久综合不卡| 国内精品久久久久久久久电影网 | 国产精品久久久亚洲| 国产精品欧美亚洲韩国日本久久| 亚洲人AV永久一区二区三区久久| 久久国产精品99精品国产| 国产精品永久久久久久久久久| 久久精品国产清自在天天线| 精品久久久久中文字幕一区| 久久天天躁狠狠躁夜夜avapp| 精品久久国产一区二区三区香蕉| 精品久久久久久国产潘金莲| 久久精品青青草原伊人| 日日狠狠久久偷偷色综合96蜜桃| 久久97精品久久久久久久不卡| 少妇高潮惨叫久久久久久| 无码人妻久久一区二区三区蜜桃 | 成人久久久观看免费毛片| 亚洲欧美日韩精品久久亚洲区| 亚洲伊人久久大香线蕉苏妲己| 国产精品女同久久久久电影院| 7777久久久国产精品消防器材| 久久性精品| 久久99国产精品久久99小说| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久国产精品无码网站| 亚洲午夜久久影院| 精品久久人人妻人人做精品| 国产AⅤ精品一区二区三区久久| 国产成人久久激情91| 久久se精品一区精品二区| 久久国产乱子精品免费女| 国产精品久久久久国产A级| 久久99精品国产99久久| 亚洲国产精品久久66| 久久国产综合精品五月天| 久久国产精品免费一区二区三区|