Хочу написать класс для выделения памяти под этот класс и производные от него
Вроди как начал
class DObjects
{public:
DObjects() :
count(0)
{
}
private:
virtual ~DObjects();
DObject *Objects;
int count;
};
если бы надо было добавлять в массив только элементы только класса DObject, то все ничего, но дело в том что DObject нужен мне только для наследования другими классами его свойств и тут возник вопрос: как правильно написать метод класса котрый будет добовлять в массив унаследованый элемент унаследованого класса ? Неужили придется создавать для каждого нового класса-наследник, метод для добовление его в масссив ?
(Не надо сильно бить, я только учусь :))
>Неужили придется создавать для каждого нового класса-наследник, метод для добовление его в масссив ?
Нет, метод понадобится один, и принимать он будет указатель на DObject.
Но при этом массив объектов Objects должен быть типа DObject** - а почему так - это тебе домашнее задание на подумать.
Ах да, если ты решил работать с набором объектов, объеденив их в массив - это херовый выбор. Лишний геморрой будет с добавлением (реаллоцирование) / удалением (ваще мясо) элементов туда. Так что лучше не изобретать велосипед, а использовать то, на что в этом треде уже сказали - std::vector либо std::list, по ситуации.
> Неужили придется создавать для каждого нового класса-наследник, метод для добовление его в масссив ?
Джеф Элджер «С++ для профессионалов» (мог перепутать название - по паамяти), читать на ночь. А как Вы с-но хотели то? Тип создаваемого класса определяется какими то параметрами, и да, для каждого типа наследника в коде так или иначе придется написать new. Можете сгрести все эти mew в одну порождающую ф-ю, которая будет решать на основе своих аргументов кого создавать.
ЕГЭ, по реалу он у меня на 2, по егэ чуть не пять (просто когда я пишу, то не думаю, а когда задание состоит в том, что бы правильно написать, это другое дело)