C++ C++;使用从基类继承的另一个类的变量初始化函数继承
MergeSort遍历给定的向量,并通过Citizen基类中的fitness变量进行排序 我想在我的SGA类中使用它来对其SCitizen(它继承了fitness变量?)执行相同的操作;但是我不能,因为函数要求公民类型 是否不能对同一个函数使用派生类,因为该函数只使用所有类都将具有的基类的成员?还是我在课程设置上遗漏了什么 谢谢你的帮助! 对不起,如果这是重复;我在这里搜索了一下,在谷歌上搜索了一下,但什么也没找到——我甚至不知道该用谷歌搜索什么C++ C++;使用从基类继承的另一个类的变量初始化函数继承,c++,inheritance,C++,Inheritance,MergeSort遍历给定的向量,并通过Citizen基类中的fitness变量进行排序 我想在我的SGA类中使用它来对其SCitizen(它继承了fitness变量?)执行相同的操作;但是我不能,因为函数要求公民类型 是否不能对同一个函数使用派生类,因为该函数只使用所有类都将具有的基类的成员?还是我在课程设置上遗漏了什么 谢谢你的帮助! 对不起,如果这是重复;我在这里搜索了一下,在谷歌上搜索了一下,但什么也没找到——我甚至不知道该用谷歌搜索什么 class Citizen { public:
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();
};
阶级公民
{
公众:
双重健身;
公民();
};
科学类:公众公民
{
公众:
std::字符串代码;
SCitizen();
};
GA类
{
公众:
性病:病媒*公民;
无效合并排序(标准::向量*列表);
};
SGA类:公共GA
{
公众:
std::载体*科学化;
void FitnessSort();
};
要使向量
存储公民
值及其所有子类型,您需要使用向量
。vector
只能存储Citizen
值,并将切掉所使用的任何子类型 要使向量
存储公民
值及其所有子类型,您需要使用向量
。vector
只能存储Citizen
值,并将切掉所使用的任何子类型 根据您的FitnessSort实现,无法在SCitizen类中向Citizen提供强制转换?FitnessSort只调用MergeSort和sCitizens(导致我的问题)。然后,MergeSort将根据Citizen基类中的fitness变量对该列表进行排序;但是我也需要SCitizen中的关联变量..根据您的FitnessSort实现,无法在SCitizen类中向Citizen提供强制转换?FitnessSort只调用MergeSort与SCitizen(导致我的问题)。然后,MergeSort将根据Citizen基类中的fitness变量对该列表进行排序;但是我也需要来自SCitizen的相关变量..谢谢你的回复;我像这样重写了MergeSort:MergeSort(std::vector*list)
和void FitnessSort()代码>发送SCitizen(现在是std::vector),但我收到了这个错误:无法使用SCitizen*和Citizen*将参数1从“std::vector*”转换为“std::vector*”,谢谢您的回复;我像这样重写了MergeSort:MergeSort(std::vector*list)
和void FitnessSort()代码>发送SCitizen(现在是std::vector),但我收到了以下错误:无法使用SCitizen*和Citizen将参数1从“std::vector*”转换为“std::vector*”*