首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++抽象类里定义虚函数好吗?解决办法

2013-10-31 
C++抽象类里定义虚函数好吗?!!!!!!!!!!!!!!!!!!!!!!!!![解决办法]class AbstractHuman { public:virtual ~

C++抽象类里定义虚函数好吗?
!!!!!!!!!!!!!!!!!!!!!!!!!
[解决办法]

class AbstractHuman {
 public:
  virtual ~AbstractHuman() {}; 
  virtual int GetAge() = 0;
  virtual int GetNumberOfHands() {
    return 2;
  }
};

[解决办法]
没有什么好不好,只有需要不需要。虚函数是为了让基类作为一个“接口”使用。比如你做了一个游戏,游戏中有很多物体需要画出来,你做了一个容器来保存这些物体,并且在需要画出它们的时候遍历这个容器,一个一个去调用他们的自画函数。但这些物体是不同的,他们就需要用虚函数来实现自己画自己。

class GameObject
{
public:
    GameObject();
    virtual ~GameObject();
    virtual void OnDraw() = 0;
};

class DogObject : public GameObject
{
public:
    DogObject() {}
    virtual ~DogObject() {}
    virtual void OnDraw() { printf( "It's a Dog !" ); }
};

class CatObject : public GameObject
{
public:
    CatObject() {}
    virtual ~CatObject() {}
    virtual void OnDraw() { printf( "It's a Cat !" ); }
};


CList< GameObject * > objlist;

void OnDrawObjects()
{
     POSITION pos;
     for( pos = objlist.GetHeadPosition(); pos; pos = objlist.GetNextPosition( pos ))
          objlist.GetAt( pos )->OnDraw();
}

热点排行