c++ - 从自身的 vector 继承的类

标签 c++ inheritance stdvector

在 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/

相关文章:

c++ - 如何像数组一样访问元组(具有括号重载和类型安全)?

java - Java中实例化对象的不同方式之间的区别

Java 继承 - 建模多个对象

python - 属性是否支持继承?

c++ - 如何通过引用正确传递迭代器?

c++ - vector Push_Back VS Emplace_Back

c++ - 将 .o 库文件链接到共享对象时出现问题

c++ - 为类模板重载非成员算法

c++ - CUDA C - 无法编译在头文件中声明并在 .cu 中实现的类

c++ - std::vector 做了奇怪的事情