Абстрактные классыНужно написать базовый абстрактный класс, включающий в себя методы Set(), Get()...
Создать несколько производных классов.
Проблема в этом: Создать массив объектов базового класса и заполнить объектами производных классов.
Тут у меня два вопроса:
1) вроде как я не могу создать объект базового АБСТРАКТНОГО класса. я прав?
2) допустим у меня базовый НЕабстрактный класс.
Как в таком случае я могу заполнить массив объектов базового класса объетами производных классов?
Например:
class BasicClass
{
public:
Get(){...}
Set(){...}
};
class Derived1
{
public:
...
}
class Derived2
{
public:
...
}
void main()
{
...
BasicClass* array1=new Derived1[n]; //вот так я создаю массив, заполнив его объектами Derived1. Аналогично могу и со вторым.
//но по условию задачи вроде как просят сделать что-то может наподобие:
BasicClass* array1=new BasicClass;
array[0]=new Derived1; // это неверно, но это я чтобы суть подчеркнуть того, чего я хочу.
}
Вот не знаю, как (и можно ли) заполнить как-нибудь так массив объектов базового класса...
Прошу помощи.
3) и еще: в абстрактом классе у всех ф-ий вначале пишется virtual. А вот что касается конструктора? Перед ним писать virtual нельзя. Тогда получается в абстрактном классе не должно быть конструктора?
И в абстрактном классе нет полей?