У меня есть шаблон списка.
Я хочу составить список работ.Тем не менее, у меня разные задания, когда единственная другая вещь - это функция executeJob ().
Итак, у меня есть класс Job:
class Job{...
...
public:
..
virtual SomeType executeJob() = 0;
}
Так что это на самом деле абстрактный класс и в производномклассы, все частные поля одинаковы, и у него есть реализация для собственного executeJob ().
Допустим, есть 2 различных типа производных классов с именами Job1
и Job2
, поэтому я действительно хочу, чтобы мой списокчтобы иметь возможность иметь Job1 objects
и job2 Objects
.
Мой список определяется следующим образом: List<Job>
.
Но в ListNode c'tor у меня есть это:
listNode(const T& value) : value(new T(value)), prevNode(NULL),
nextNode(NULL){}
и, конечно, у меня проблема со строкой: value(new T(value))
, поскольку это абстрактный класс.Как мне решить эту проблему, чтобы я все еще мог хранить список как Job1 and Job2 objects
и определять его как List<Job>
?