c++ stl的容器的问题,添加函数。

我想给list添加几个函数,原有的list函数不够用,该怎么办?是新建个类,继承list吗?... 我想给list添加几个函数,原有的list函数不够用,该怎么办?是新建个类,继承list吗? 展开
 我来答
hopehill332
2014-07-26 · TA获得超过258个赞
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:94.9万
展开全部

理论是可以的。比如:

#include <list>
template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
class mylist : public std::list<_Tp, _Alloc>
{
public:
    //... 你的扩充代码 ...
};


不过从比较严格的编码规范来说,不太推荐从STL容器继承。因为,严格的说,一个类如果它允许有派生类,它的析构数应该被定义虚函数,而STL容器的析构函数并没有被定义的虚函数。


最安全的方式是使用组合及代理的模式。不过使用组合并不优雅,你需要增加好多重复的代码(要把list的每个函数重新定义一次 :()。

更多追问追答
追问
我是用qt编程,写了
class mylist :public QList
{}
为什么有错误
expected class name before '{'token
我是用qt编程,写了
class mylist :public QList
{}
为什么有错误
expected class name before '{'token
芝士芯片
2014-07-26 · TA获得超过190个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:167万
展开全部
你要实现什么功能,一般通过这些函数都是可以实现的。你继承之后可能会造成代码冗余,臃肿。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式