定义
定义类型对象类和有类型的对象类。每个类型对象实例代表一种不同的逻辑类型。 每种有类型的对象保存对描述它类型的类型对象的引用。
定义往往不是人能看懂的,我们需要例子才能够理解。
举例
假设你要为一款游戏制作一些怪物敌人。这些敌人有不同的血量及攻击模式。 你会怎么写?
最容易想到的就是,哦,我先写一个Monster抽象基类,里边定义了基本的属性和抽象方法,然后让子类继承这个基类,来制造特定的敌人。就像这样
class Monster
{
public:
virtual ~Monster() {
}
virtual const char* getAttack() = 0;
protected:
Monster(int startingHealth)
: health_(startingHealth)
{
}
private:
int health_; // 当前血值
};