У меня есть класс Base1, который содержит массив объектов другого класса Base2.Я хотел бы иметь производный класс Derived1, который наследует все от Base1, за исключением массива типа Derived2 (который является производным классом Base2).Например, что-то вроде этого:
class Base2{
int a2;
};
class Derived2: public Base2{
int b2;
};
class Base1{
Base2* list;
};
class Derived1: public Base1{
Derived2* list;
};
Насколько я понимаю, в приведенном выше примере объект Derived1 на самом деле будет иметь ДВА массива:
list
и
Base1::list
который я не хочу.
Идея состоит в том, что все функциональные возможности Base1 все еще должны работать для объекта Derived1, поскольку Derived2 "является" Base2.Это было бы очень грязно, но я думаю, я мог бы просто удалить [] массив Base1 :: list в конструкторе Derived1.
Кто-нибудь видит решение этой проблемы?Кажется, что-то такое случается часто, и я не могу поверить, что простого решения не существует.Будет ли работать шаблоны?Я думал, что нет, поскольку все функции в Base1 и Derived1 должны знать, что они имеют дело с объектами Base2 и Derived2, соответственно.