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();
}