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