我見過使用模板定義堆棧容納數據類型的堆棧類。如果我想要一個容納不同類型數據的堆棧呢?我有一點想法,並接近使用void指針(但無效指針不能解除引用,所以它不是正確的解決方案)所以...有可能有這樣一個類?是否可以創建採用任何類型變量的堆棧類?不僅有1種類型
0
A
回答
0
void指針不能被解除引用,當然,但您仍然可以將void指針轉換爲您需要的實際指針類型,然後對其進行解引用。
void *ptr = malloc(10);
*ptr = 10; // won't work
*((int *)ptr) = 10; // will work
2
您可能有一堆boost::any
值。
0
你應該看看C++模板。這樣你可以設計類或函數來處理任何數據類型。
1
有多種選擇,從最安全到最艱苦這裏列出來管理
- 公共基類
boost::variant
(假設你事先知道所有類型)boost::any
(非常難行動起來,因爲任何東西都可以在那裏......)void*
(很困難再次出現內存管理問題)
拿起你想要的。
相關問題
- 1. 如何創建一個不同類型的變量的堆棧?
- 2. 是否有一種語言可以改變變量類型?
- 3. Can Immutable.is()可以採用任何不可變類型嗎?
- 4. 是否可以創建變量值類型?
- 5. Hacklang - 是否可以使用類型常量的類型約束?
- 6. Android:是否可以創建這種類型的圈子?
- 7. 超類型變量是否可以引用子類對象?
- 8. 是否可以從堆棧跟蹤中獲取實際類型?
- 9. 原始類型不變性和堆棧?
- 10. 匿名類型是否可以繼承另一種類型?
- 11. 類型的「變量」,類型爲「可變」
- 12. 有許多不同類型的堆棧
- 13. 使用一個隱含類型種姓是否改變變量的類型?
- 14. 創建一個變量以適應所有類的類型
- 15. 是否可以創建一個可用於創建任何類的「新」實例的泛型方法或類?
- 16. 如何在類型變量中創建任何類型的字典?
- 17. 我可以將參數類型指定爲多種類型之一而不是TypeScript中的任何類型?
- 18. 是否有可能使用不同的SelectItem類型創建SelectOneMenu
- 19. 兩種類型的變量
- 20. 是否有可以調整基類類型的返回類型的基類?
- 21. 如何創建'OF'變量的類型?
- 22. C#類型位圖是在系統或者我們可以創建類型的任何一種
- 23. 是否可以在創建對象後獲取類型字段的類型?
- 24. 試圖在類上創建一個堆棧類whare可以處理不同的數據類型
- 25. 是否可以創建匿名類型泛型?
- 26. 分配不同類型的變量的一種類型
- 27. 是否可以創建一個向量圖,其中向量可以是任何類型的?
- 28. 是否有任何開源的用戶指南類型創建軟件可用?
- 29. 4種不同類型的數據類型在C++中可以採用(或通常採用)
- 30. 是否可以獲取泛型類型的類型名稱?
這聽起來像是你正在嘗試做一些你不應該做的事情......上下文是什麼?爲什麼你不能使用公共基類,虛擬和dynamic_cast <> - 或者,作爲最後的手段,對所有內容使用聯合或不安全的(void *)投射? (我假設你可以完全控制堆棧中存儲的內容<>)。 – integer 2010-07-15 16:02:45