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

标签 c++ inheritance

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

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

是否不能对同一个函数使用派生类,因为该函数只使用所有类都将具有的基类的成员?还是我错过了类(class)设置中的某些内容?

感谢您的帮助! 对不起,如果这是重复的;我在此处和谷歌上进行了搜索,但一无所获 - 我什至不确定要用谷歌搜索什么......

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值并将切掉任何使用的子类型。

关于C++类函数继承使用从基类继承的另一个类的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9873977/

相关文章:

java - "has private access"泛型错误

c++ - 构造函数主体前的冒号是否表示继承

java - OOP - 向类添加属性的最佳方法

Powershell 重写父类构造函数

java - SWIG Java 在使用 -DSWIGWORDSIZE64 时将 int64_t 转换为 jlong

c++ - 由于 LARGEADDRESSAWARE 检测指针算术

c++ - 退出后代码崩溃?

c++ - Visual Studio 2017 中的 Intellisense 可以建议包含 C++ header 吗?

c++ - Opencv 3.0 features2d.hpp错误: unknown AlgorithmInfo

php - 使 DateTime::createFromFormat() 返回子类而不是父类