c++继承重载成员

c++ inheritance overload member

本文关键字:成员 重载 继承 c++      更新时间:2023-10-16

我有两个类A, B继承A。我有两个结构体C, D,其中D继承C。A实例化了一些结构体C作为成员。我怎样才能实现B实例化结构D而不是C的成员?当然,我可以将D作为新成员添加到B中,但B也会为C分配内存,这将是浪费。

模板?

template <typename ContainedT = C>
class A {
    ContainedT x, y, z;
};
class B : public A<D> {
    ...
};