Class 继承自一个本身的向量

Class inherited from a vector of itself

在 C++ 中可以这样声明 class:

class A : public std::vector<A>
{
public:
    A() = default;
    ~A() = default;
}

好的,从STL容器继承是不好的,隐藏非虚析构函数是不好的。

但是class这样有什么用吗?它可以用来做什么?

由于 std::vector<> 的析构函数是 non-virtual,所以将派生 class 的析构函数设为虚拟是没有意义的 - 当使用 base 时,您的 class 将不会表现出多态性.

但是,使用 non-polymorphic 继承可能会有一些好处,例如,通过覆盖某些 vector 函数。

一旦 class 被识别为基数 class,事情就变得悲惨了,只是(由于运算符或函数采用基数 class)。只是不要这样做。 modifying/extending 尝试的示例尝试可能是 std::string - 有 none。