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

            久久精品一区二区| 久久国语露脸国产精品电影| 91精品国产高清久久久久久91 | 日本久久中文字幕| 久久成人小视频| 久久久青草久久久青草| 一级女性全黄久久生活片免费| 一本久久a久久精品vr综合| 蜜桃麻豆www久久| 午夜精品久久久久久毛片| 国产亚洲成人久久| 久久Av无码精品人妻系列| 日本高清无卡码一区二区久久| 99999久久久久久亚洲| 7777精品久久久大香线蕉| 久久综合九色综合久99| 97久久超碰国产精品旧版| 一本色综合久久| 国产精品免费久久| 日韩精品久久久久久| 久久久久人妻一区精品色| 国内精品伊人久久久影院| 国产午夜精品久久久久九九电影| 久久午夜无码鲁丝片| 狠狠色丁香久久婷婷综合蜜芽五月| 久久久久亚洲av成人无码电影| 久久99国产精一区二区三区| 国产精品久久久久久吹潮| 亚洲中文字幕无码久久2017| 久久精品国产亚洲AV久| 久久综合久久鬼色| 热久久国产欧美一区二区精品| 国产精品欧美久久久久无广告| 精品久久久久久国产潘金莲| 国内精品九九久久久精品| 久久超乳爆乳中文字幕| 久久精品无码一区二区无码| 狠狠色丁香久久婷婷综合五月 | 伊人久久大香线蕉综合网站| 国产香蕉久久精品综合网| 久久九九兔免费精品6|