C++类函数继承使用从基类继承的另一个类的变量



MergeSort运行给定的向量,并通过我的Citizen基类中的适应度变量进行排序。

我想在我的SGA类中使用它来对它的SCitizen(它继承了适应度变量?)做同样的事情;但我不能,因为函数要求公民类型。

是否不能将派生类用于同一函数,因为该函数只使用所有类都将具有的基类的成员?或者我在课程设置中遗漏了什么?

谢谢你的帮助!很抱歉,如果这是重复的;我在这里搜索了一下,然后用谷歌搜索,但一无所获——我甚至不太确定该用谷歌搜索什么。。

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();
};

为了使vector<T>存储Citizen值及其所有子类型,您需要使用vector<Citizen*>vector<Citizen>只能存储Citizen的值,并且将对所使用的任何子类型进行切片。

最新更新