閱讀441 返回首頁    go 技術社區[雲棲]


C++編程規範之40:要避免提供隱式轉換

摘要:

    並非所有的變化都是進步。隱式轉換所帶來的影響經常是弊大於利。在為自定義類型提供隱式轉換之前,請三思而行,應該依賴的是顯示轉換。

    隱式轉換主要有兩個主要的問題:

    1.它們會在最意料不到的地方拋出異常。

    2.他們並步總是能與語言的其他元素有效地配合。

    隱式轉換構造函數與重載機製配合得很糟糕,而且會使不可見的臨時對象到處出現。在C++中,一個轉換序列最多隻能包含一個用戶定義的轉換。可是,如果這其中加入了內置轉換,結果就會變得極為混亂。解決方法主要有:

    1.默認時,為但參數構造函數加上explicit。

    2.使用提供轉換的命名函數代替轉換操作符。

最後更新:2017-04-03 12:54:31

  上一篇:go 關於生活質量與購物
  下一篇:go 關於生活質量與購物