Hej,
Mam taki problem że wszystkie polimorficzne przykłady w cpp pokazują końcowe wykorzystanie wskaźnika w funkcji main.
Ja chce natomiast zadeklarować wskaźnik polimorficzny w mojej osobnej klasie i wygląda to tak:
class CellMutation
{
private:
cocos2d::Point location;
int cicles_;
Cell* cell;
friend cocos2d::CallFunc;
public:
CellMutation(cocos2d::Point location)
: cicles_(0), cell(nullptr)
{};
void Init();
};
class Cell
{
protected:
cocos2d::Point location;
cocos2d::DrawNode* shape;
cocos2d::Node* getCurrentScene() { return cocos2d::CCDirector::getInstance()->getRunningScene(); };
public:
Cell()
{}
virtual void Create()=0;
virtual void Destroy()=0;
~Cell() {};
};
class ShapeShell
:public Cell
{
public:
ShapeShell()
{};
void Create();
void Destroy();
~ShapeShell()
{
Destroy();
};
};
Niby wszystko jest okay dopóki nie skompiluje. Po skompilowaniu visual mi próbuje wmówić że to nie jest klasa bazowa.. i jakby w ogóle nie rozumiał tej deklaracji.
Jednak gdy
Cell* cell;
wstawię w funkcje, bądź metodę to wszystko gra.
Pewnie się to jakoś inaczej deklaruje w klasie, ktoś wie może jak?