【发布时间】:2015-07-24 20:28:01
【问题描述】:
你更喜欢哪一个:
template <class STRATEGY>
class A
{
STRATEGY *m_pMyStrategy; // User has to create new strategy class
// class A needs to use traits
// or some other means to decide if strategy meets the requirements
};
或
class A
{
IBaseStrategy *m_pMyStrategy; // User inherits IBaseStrategy class
};
为什么 std::vector 为分配器选择第一个?
【问题讨论】:
-
整个 std 集合都专注于模板而不是继承。
-
查找运行时和编译时多态性。
-
我可能不会问“你更喜欢哪个?”在这里提出问题,因为如果两者都完成相同的任务,则由程序员来解释一个实现是否比另一种更可取。
-
两个sn-ps都非常糟糕。
-
我认为标准委员会承认
std::vector处理分配器的方式是错误的设计。
标签: c++ templates inheritance stl