2
A
回答
8
我可以定義一個克隆來返回
Clonable
對象嗎?
當然。哎呀,你可以做一個clone()
方法,返回你想要的任何東西。我的猜測是Clonable
類意味着多態使用,並且clone()
方法是virtual
。指針(或引用)是您在C++中運行時多態性的唯一選項。如果它沒有返回指針,你會得到object slicing。
+0
什麼是類型轉換?客戶端代碼是否需要像'auto widget = static_cast
+0
沒有任何投射,用戶只會得到一個'Clonable *'回來。但是,如果你想要派生類型,只需要一次強制轉換。你不應該像這個例子那樣需要重複投射東西。 – Cornstalks
相關問題
- 1. 爲什麼我的ToString方法總是返回一個NullReferenceException?
- 2. 爲什麼總是返回一個?
- 3. 爲什麼要在oop中返回一個對象的克隆?
- 4. 從方法中返回一個指針
- 5. dict.get()方法返回一個指針
- 6. 爲什麼這個搜索函數返回一個指向指針的指針?
- 7. 什麼是複製一個指針,然後返回第一個
- 8. 爲什麼在const方法中返回一個const X * const指針?
- 9. 這個函數爲什麼會返回一個指針?
- 10. 爲什麼這個DAO在spring中返回一個空指針
- 11. 爲什麼strerror不會返回一個const限定的指針?
- 12. C++ const成員函數返回一個const指針..但是返回的指針是什麼類型的const?
- 13. 爲什麼Tiff.Open方法總是返回NULL而不打開一個tiff文件?
- 14. Mercurial - 克隆克隆另一個回購
- 15. C bsearch總是返回指針= NULL
- 16. 安卓:SQLITE_MASTER總是返回空指針
- 17. Python - 鏈接方法:返回`self` vs返回一個新的克隆對象
- 18. NSURLRequest類。方法 - (NSInputStream *)HTTPBodyStream總是返回nil。爲什麼?
- 19. 爲什麼JQuery valid()方法總是返回True?
- 20. 爲什麼getAction方法總是返回ACTION_DOWN?
- 21. 爲什麼我的getString()方法總是返回null?
- 22. 爲什麼我的方法總是返回null?
- 23. 爲什麼方法getBackStackEntryCount總是返回0
- 24. 爲什麼在調用方法IQueryable.FirstOrDefault()時總是返回null?
- 25. 爲什麼我的結構方法總是返回false?
- 26. 爲什麼Combobox.FindName()方法總是返回null?
- 27. 爲什麼我的ruby方法總是返回true?
- 28. 克隆無效*指針爲int
- 29. 當返回一個指向本地數組的指針時,爲什麼它總是相同的值?
- 30. 什麼是關於類方法的約定返回這個指針
沒有看到上下文很粗糙,但我的水晶球告訴我Clonable是虛擬層次結構中的一個接口。 [一個實例會**切片**](http://stackoverflow.com/questions/274626/what-is-object-slicing) – WhozCraig
值得注意的是,可克隆模式的體面*現代*實現將返回'std :: unique_ptr'而不是原始指針。 – cdhowie
@cdhowie:不那麼容易covariant返回類型:(... – Jarod42