![]() |
1
12
|
![]() |
2
2
要比教皇(或者在本例中是SteveGuidi)更为天主教,对存储在STL容器中的对象的要求是它们是可复制构造和可分配的,而抽象类两者都不是。所以在这种情况下,一个指针容器是可行的。 如果您决定通过不使类变为抽象的方式来修复问题,那么需要考虑的另一件事是 slicing . |
![]() |
3
0
std::vector(通常是整个stl)用于存储值。如果您有一个抽象类,那么您并不打算操纵这种类型的值,而是操纵指针或对它的引用。所以抽象类的std::vector没有意义。即使它不是抽象的,通常也没有意义将设计为基类的类作为值来操作,它们通常应该是不可查看的(复制构造函数和赋值运算符声明为私有的,而不实现是标准技巧,它继承自一个合适的类,其唯一目的是使其后代不可复制--例如,不可复制——已经成为时尚。 |
|
Julia · 矢量中相加为总和S的值的数量 2 年前 |
![]() |
C_Rod · 在模板方法中确定STL容器中项目的数据类型 2 年前 |
![]() |
quantumwell · 将空向量放入std::map() 7 年前 |
![]() |
OutOfBound · 对未初始化内存使用算法的优点 7 年前 |
![]() |
DarthRubik · 在使用列表删除之后,迭代器如何不无效 7 年前 |