我有一個設計問題。我被要求爲某個問題規劃一個設計,在那裏我需要一些列表,還有一個隊列(我需要自己創建,STL是不允許的)。爲了使實現更高效,我想創建一個通用列表,如下所示:創建一個包含指向'Data'的空指針的節點,一個空類。那麼,我想創建一個列表或一個隊列(是語法正確的最後一個句子?)的任何類,我只是將它作爲數據的一個子類。這是製作通用列表(我認爲)的唯一方法,因爲我們不允許使用void *。 當我想在特定列表中使用特定類的某種方法時,問題就開始了。我不能這樣做,因爲'數據'不知道這個功能。在Data中創建虛擬函數是反邏輯和醜陋的,我們也不允許使用任何向下轉換。 有沒有辦法使用通用ADT來解決這個問題?或者我必須創建具體的列表? 非常感謝! 編輯:我們也不允許使用模板。使用通用的ADT
Q
使用通用的ADT
0
A
回答
0
關於列表和隊列,也許你可以採用由STL採取了同樣的方法:只需要創建列表,然後堆棧,如列表中,你只能推,然後從彈出結束的適配器。
關於那些約束上,這似乎是嚴厲的,不要我想,其目的是供您使用的模板?
不是創建和空類,如果不包含任何方法不爲你所有,使用模板如下面的例子:
template<typename T>
class List {
class Node {
public:
Node(T* d)
{ data.reset(new Data(d)); }
T * getData()
{ return data; }
Node * getSig()
{ return sig; }
private:
std::auto_ptr<T> data;
Node * sig;
};
List()...
// Lots of more things...
};
你可以在這裏找到更多的信息:
http://www.cplusplus.com/doc/tutorial/templates/
希望這會有所幫助。
相關問題
- 1. 通用模板ADT傻瓜
- 2. 使用ADT新版本的
- 3. 使用Eclipse的Java ADT
- 4. Maven的使用與ADT
- 5. 如何使用Eclipse ADT
- 6. 錯誤:使用ADT插件
- 7. 混淆使用ADT 20
- 8. 使用ADT Bundle設置android
- 9. 編輯Android的佈局使用Eclipse ADT
- 10. 使用ADT構建的問題r14
- 11. 使用ADT的鏈表問題
- 12. Eclipse ADT錯誤 - 使用錯誤的ResId
- 13. 我想插ADT插件與Eclipse 3.5使用ADT-0.9.3.zip存檔
- 14. 用於理解的ADT
- 15. 適用於圖形的ADT
- 16. 在ADT中使用android-maps-utils
- 17. 如何使用ADT生成Javadoc r17
- 18. 使用ADT讀取/寫入文件
- 19. Eclipse不能使用ADT插入
- 20. 如何在ADT項目中使用ffmpeg4android?
- 21. 使用Liferays ADT自定義Web內容
- 22. 是否可以創建通用ADT的類型級表示?
- 23. 通過使用基於陣列的鏈接列表實現ADT列表
- 24. ADT可以使用ipa-test-interpreter,但不能使用ipa-test
- 25. 使用適用於Android和ADT的Google Cloud Endpoints
- 26. Android的ADT - 禁用「使用同一設備未來發射」
- 27. 的Eclipse ADT卡閃屏上,並可用RAM高使用率
- 28. ADT
- 29. Eclipse ADT - 「Android通用XML編輯器」不添加新項目
- 30. C:傳遞函數指針時發生通用ADT錯誤
模板是非常建立在C++中,沒有子類化通用數據結構的正規途徑。 – leftaroundabout