1
12
|
2
2
要比教皇(或者在本例中是SteveGuidi)更为天主教,对存储在STL容器中的对象的要求是它们是可复制构造和可分配的,而抽象类两者都不是。所以在这种情况下,一个指针容器是可行的。 如果您决定通过不使类变为抽象的方式来修复问题,那么需要考虑的另一件事是 slicing . |
3
0
std::vector(通常是整个stl)用于存储值。如果您有一个抽象类,那么您并不打算操纵这种类型的值,而是操纵指针或对它的引用。所以抽象类的std::vector没有意义。即使它不是抽象的,通常也没有意义将设计为基类的类作为值来操作,它们通常应该是不可查看的(复制构造函数和赋值运算符声明为私有的,而不实现是标准技巧,它继承自一个合适的类,其唯一目的是使其后代不可复制--例如,不可复制——已经成为时尚。 |
neevek · 为什么move-ctor比copy-ctor慢? 7 年前 |
DChiu28 · 对链表复制构造函数和赋值运算符使用copy()方法 7 年前 |
M. Winter · 为什么在复制构造函数中分配联合成员会崩溃? 7 年前 |
a06e · 常量数据成员阻止自动生成复制和移动因子? 9 年前 |
ESipalis · C++重载运算符、构造函数等 9 年前 |
ClimbingLung · 带对象的Qt容器 9 年前 |