首页 > 解决方案 > 如何包含使用基类的类

问题描述

这个问题很难问,但我会尽力解释:我有一个类 World,它导入 Class Species,并保存 Species 列表。我需要在类 Species 中有指向类 World 的指针,但是如果我在声明 Species 错误发生之前导入 Class World。

伪代码示例:

import B
Class A
{
list of B
}
Class B
{
Class A* a
}

所以我需要导入A类来指向它,但是当我这样做时,B类没有在A类中声明。

我的代码:


    
#pragma once
#include <iostream>

class Species
{

protected:
    std::string speciesName;
    int strengh;
    int effort;
    int posX;
    int posY;
    int specieSymbol;

public:
    Species();
    Species(std::string speciesName, int strengh, int effort, int posX, int posY);

    int getPosX();
    int getPosY();

    void setPosX(int x);
    void setPosY(int y);

    int getSpeciesSymbol();

    std::string getSpeciesName();

    virtual void action() = 0;
    virtual void colision() = 0;

    //void setWorld(World* w);
    //World* getWorld();

    ~Species();
};

#pragma once
#include <iostream>
#include "Species.h"
#include <list>
#include "Board.h"
class World
{
private:
    std::list <Species*> species;
    Board* board;

public:
    World(Board *board);

    void addSpecies(Species* s);
    
    void printSpecies();

    void printWorld();

    void Update();
    
    ~World();
};

标签: c++classoop

解决方案


推荐阅读