Hi all. Well i'm having some problems with polymorphism. Within my main function i'm creating a CEnemy* which contains a CBubble. I'm then trying to access the Initialise function of my new objecct. I want to access the initialise function associated with my CBubble class, but keep getting Initialise for my CEnemy class.
CEnemy* pEnemy = new CBubble();
pEnemy->Initialise(10,0.0f);
I'm sure i'm doing something stupid, but I can't think what :P I've included my header files below. Thanks for any help :)
bubble.h
// Local Includes
#include "enemy.h"
// Types
// Constants
// Prototypes
class CBubble : public CEnemy
{
// Member Functions
public:
CBubble();
virtual ~CBubble();
virtual bool Initialise(int _iStartHp, float _fLifeTime);
virtual void Process(float _fDeltaTick);
virtual void Draw();
protected:
private:
// Member Variables
public:
protected:
private:
};
enemy.h
// Local Includes
#include "entity.h"
// Types
// Constants
// Prototypes
class CEnemy : public CEntity
{
// Member Functions
public:
CEnemy();
virtual ~CEnemy();
virtual bool Initialise(int _iStartHp, float _fLifeTime, const int _kiSpriteID, const int _kiMaskID, float _fX, float _fY);
virtual void Process(float _fDeltaTick);
virtual void Draw();
void DeductHp(const int _iDeductHp);
int GetHp();
bool IsDead();
bool IsAtPathEnd();
void SetLifeTime(float _fLifeTime);
float GetLifeTime();
void MoveAlongPath();
protected:
private:
// Member Variables
public:
protected:
private:
int m_iHp;
int m_iMoveSpeed;
//int m_iLifeModifier;
float m_fLifeTime;
bool m_bDead;
};
entity.h
// Library Includes
// Local Includes
// Types
// Constants
// Prototypes
class CSprite;
class CEntity
{
// Member Functions
public:
CEntity();
virtual ~CEntity();
virtual bool Initialise(const int _kiSpriteID, const int _kiMaskID);
virtual void Draw();
virtual void Process(float _fDeltaTick);
void SetX(float _fX);
void SetY(float _fY);
float GetX() const;
float GetY() const;
float GetHeight() const;
float GetWidth() const;
protected:
private:
CEntity(const CEntity& _kr);
CEntity& operator= (const CEntity& _kr);
// Member Variables
public:
protected:
CSprite* m_pSprite;
float m_fX;
float m_fY;
private:
};
[Edited by - MightyNinja on October 27, 2007 8:01:05 PM]