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

2025-01-31 13:58:00
推荐回答(2个)
回答1:

理论是可以的。比如:

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


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


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

回答2:

你要实现什么功能,一般通过这些函数都是可以实现的。你继承之后可能会造成代码冗余,臃肿。