• <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>
            posts - 183,  comments - 10,  trackbacks - 0

            隱式類型轉換,其他類型的變量可以通過構造函數隱式轉換為一個類類型的對象,這里隱式轉換會產生一個無名的臨時對象,這個對象是常量不能被修改。所以說,不能將其賦值給一個非 const 的引用,這樣編譯不通過,最好是賦值給 const 型的引用 const T&。也可以賦值給 值類型,const、非 const 都行,但是這種效率不高。

            這里只需注意通過隱式類型轉換產生的臨時對象是無名的常量對象。

            通過隱式類型轉換產生的臨時對象和通過函數返回值返回的一個臨時的無名對象不同。通過函數返回的臨時對象,可以是常量也可以是變量。如果是變量,我們還可以修改這個無名的變量,雖然這樣做沒有意義,一般情況下有副作用。因為本該修改的沒有得到修改。

            通過函數返回值得到的無名的臨時對象是否具有常量性,是由函數的返回值類型決定的。是有程序員自己定義函數的時候決定的。而隱式類型轉換生成的無名的臨時對象的常量性是由編譯器自動決定的,與程序員無關。

             

            防止隱式類型轉換可以通過 explicit 關鍵字。

             

            class T

            {

            public:

                T(
            int a = 1int b = 2) {}
            };



            T t;

            = 5;


            這樣是首先 5 轉換為一個無名的常量性臨時對象,然后復制給 t,這里用的賦值運算符是編譯器提供的默認 operator =。其形參類型為 const T&。

            如果程序員自己提供了 operator =,并且形參類型為 T& 而非 const T&。這樣編譯就會報錯。因為不能將常量復制給 非 const 引用。只是由 C++ 的語法決定的。

            一般情況下,如果不改變實參,在定義函數的時候都盡量將形參類型聲明為 const T&。這樣做的好處是效率高,并且避免不必要的麻煩。這是一種最為可靠和安全的方法。

             

            另外,隱式類型轉換和類型轉換操作符在一起的時候還容易產生二義性。這種情況下,最好針對各種不同的參數類型,進行各種重載。但是還要考慮模板帶來的二義性等。

            posted on 2011-04-29 00:56 unixfy 閱讀(300) 評論(0)  編輯 收藏 引用
            久久久久久国产精品无码下载| 少妇久久久久久被弄高潮| 一本大道久久a久久精品综合| 国产精品成人久久久久三级午夜电影| 看全色黄大色大片免费久久久| 久久福利资源国产精品999| 久久人人爽爽爽人久久久| 99国内精品久久久久久久 | 久久久久中文字幕| 人人妻久久人人澡人人爽人人精品| 狠狠色婷婷综合天天久久丁香| 久久久久亚洲爆乳少妇无| 成人综合伊人五月婷久久| 亚洲v国产v天堂a无码久久| 国产精品国色综合久久| 无码八A片人妻少妇久久| 九九久久精品国产| 日韩欧美亚洲综合久久影院d3| 久久99精品国产麻豆宅宅| 精品人妻伦九区久久AAA片69| 好属妞这里只有精品久久| 久久九九兔免费精品6| 亚洲欧美一区二区三区久久| 久久天天躁狠狠躁夜夜2020老熟妇| 久久综合久久自在自线精品自 | 成人资源影音先锋久久资源网| 久久妇女高潮几次MBA| 色妞色综合久久夜夜| 久久综合久久综合亚洲| 亚洲国产成人乱码精品女人久久久不卡| 久久精品成人免费看| 久久久国产精品亚洲一区| 亚洲国产精品成人久久| 青青草原精品99久久精品66| 久久久久亚洲av无码专区导航 | 色偷偷偷久久伊人大杳蕉| 中文精品久久久久人妻不卡| 奇米影视7777久久精品| 久久精品国产第一区二区三区| 99久久久精品| 久久996热精品xxxx|