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

时间:2012-03-26 14:25:16

标签: c++ inheritance

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

1 个答案:

答案 0 :(得分:1)

要使vector<T>存储Citizen值及其所有子类型,您需要使用vector<Citizen*>vector<Citizen>只能存储Citizen值,并会截断所使用的任何子类型。