我有一个设计问题。我被要求为某个问题规划一个设计,在那里我需要一些列表,还有一个队列(我需要自己创建,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