std ::未來在c + +支持多態性? 那麼,如果要將child_class
存儲在future<parent_class>
中,我可以通過dynamic_cast<child_class>
得到它嗎?std ::未來支持多態嗎?
3
A
回答
3
提供您使用引用或指針(可能很明顯,因爲它將無法編譯,否則)...是的。
#include <iostream>
#include <future>
using namespace std;
struct Parent {
virtual void a() { cout << "I am parent"; }
};
struct Child : Parent {
virtual void a() { cout << "I am child"; }
};
Child g_c; //just some global for the purposes of the example
int main() {
std::future<Parent&> p = async(launch::async, []() -> Parent& { return g_c; });
auto c = dynamic_cast<Child&>(p.get());
c.a();
return 0;
}
代碼在這裏結果:http://ideone.com/4Qmjvc
相關問題
- 1. NDK支持std :: function嗎?
- 2. Ruby支持包含多態性嗎
- 3. 新來的android - 支持支持多屏
- 4. MonoTouch支持C#動態嗎?
- 5. 將在未來支持mips
- 6. fql.multiquery未來還會通過Facebook來支持嗎?
- 7. Racket支持多線程嗎?
- 8. PHP7是否支持多態?
- 9. JavaScript支持OO多態性?
- 10. C++ 64位std :: ostream支持
- 11. Android NDK不支持std :: locale()?
- 12. 未來的SDK版本將支持VimService嗎?
- 13. Haskell支持未綁定變量嗎?
- 14. Alea GPU支持動態並行嗎?
- 15. 建設支持未來的Solr分片
- 16. 你支付Subversion支持嗎?
- 17. 不支持linux 3.7.1支持ext2嗎?
- 18. Java 8支持多重繼承嗎?
- 19. DBCP - 它支持多線程嗎?
- 20. javafx支持MDI(多文檔界面)嗎?
- 21. WinRT/Metro支持多臺顯示器嗎?
- 22. Vaadin 7 TextField支持多行模式嗎?
- 23. php/apache會支持多線程嗎?
- 24. Visual Studio 2008會支持多線程嗎?
- 25. Java不支持多繼承嗎?
- 26. Spring MessageSource支持多類路徑嗎?
- 27. Android的RTP庫支持多播嗎?
- 28. 做android支持多種語言嗎?
- 29. Teradata支持多個子句嗎?
- 30. fann庫支持多核CPU嗎?
你的問題還不清楚。你問你是否聲明瞭一個'std :: function',其中T是一個基類,然後你將一個派生類'D'放入它,你可以檢索它,'dynamic_cast'回到'D'嗎? –
Olipro
@Olipro sry。編輯。所以,問題是如果基類存儲派生類的std :: future,以及通過動態轉換從std :: future獲得它的值之後。 – Olzhabay