在 C++ 中可以声明这样的类:
class A : public std::vector<A>
{
public:
A() = default;
~A() = default;
}
好吧,从STL容器继承是不好的,隐藏非虚析构函数是不好的。
但是这样的类有什么目的吗?有什么用?
最佳答案
由于 std::vector<>
的析构函数是非虚拟的,将派生类的析构函数设为虚拟是没有意义的——当使用 base 时,您的类将不会表现出多态性。
但是,使用非多态继承可能会有一些好处,例如,通过覆盖一些 vector
功能。
关于c++ - 从自身的 vector 继承的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34599707/