我已经有一段时间没有使用 C++ 的高级特性了,并且正在刷新我的 C++ 知识。话虽如此,特征和基于策略的编程的概念是我从未真正设法理解的东西。
我想改变它。我正在编写一个通用容器。我想强制执行一个策略,即容器将只存储从特定基类派生的类。这是因为当尝试访问向量边界之外的项目时,容器会返回一个无效对象(而不是抛出)。
template <class T>
class GenericContainer
{
private:
typedef std::vector<T> TypeVect;
void addElement(const T& elem);
TypeVect m_elems;
public:
unsigned int size() const;
T& elementAt(const unsigned int pos);
const T elementAt(const unsigned int pos) const;
};
我将如何使用特征来限制这个通用容器只包含类“ContainerItem”的子类?