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