MergeSort проходит через заданный им вектор и сортирует его по переменной пригодности в моем базовом классе Citizen.
Я хочу использовать это в своем классе SGA, чтобы сделать то же самое со своим SCitizen (который наследует пригодностьпеременная);но я не могу этого сделать, так как функция запрашивает тип Citizen.
Разве невозможно использовать производный класс для той же функции, поскольку функция использует только члены базового класса, которые будут иметь все классы?Или я что-то пропустил в настройке классов?
Спасибо за любую помощь!Извините, если это повторяется;У меня был поиск здесь и Google, но ничего не нашел - я даже не был особенно уверен, что Google ..
class Citizen
{
public:
double fitness;
Citizen();
};
class SCitizen : public Citizen
{
public:
std::string code;
SCitizen();
};
class GA
{
public:
std::vector<Citizen>* citizens;
void MergeSort(std::vector<Citizen>* list);
};
class SGA : public GA
{
public:
std::vector<SCitizen>* sCitizens;
void FitnessSort();
};