C++ Smart Pointers 和“與繼承有關的”類型轉換

     我們真正想要知道的是如何能夠使“smart pointer classes的行爲”在“與繼承相關的類型轉換”上,能夠和dumb pointers一樣。答案很簡單:不能夠。Daniel Edelson 指出:smart pointers雖然smart,卻不是pointers。是的,我們所能做的最好情況就是使用member templates來產生轉換函數,然後再在其中出現模棱兩可的時候使用轉型動作。這並不完美,但是夠好。Smart pointers提供了精巧的功能,而“必須使用轉型動作以避免模棱兩可”則是我們有時候必須付出的一個小代價。

 

    下面看一下代碼,便一目瞭然:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章