我正在做一个随机生成彩色块的小东西。为了组织起来,我把每个生成器(使用方法generate()
)放在它们自己的类中,所有这些类都是从Generator
派生而来的。World类拥有Generator *
集合,因此可以通过generators[randomIndex]->generate()
进行调用。
//in World.h
static std::vector<Generator *> generators;
//in World.cpp
generators.push_back(&Forest());
//Generator.h
class Generator
{
public:
virtual void generate(sf::Color ** grid, sf::Vector2i size) = 0;
};
//Forest.h
class Forest : Generator
{
public:
void generate(sf::Color ** grid, sf::Vector2i size);
};
错误信息:
为什么会出现这个错误,如何解决?'type cast' : conversion from 'Forest *' to 'Generator *' exists, but is inaccessible