所谓继承,就是在原有的类的基础上,通过继承它并添加一些新的成员,从而产生出一个新的类。例如我们在游戏有实体Entity和玩家Player,它们都有位置X,Y和一个移动的方法Move,但不同的是玩家有名字Name,而且可以打印名字。代码如下:
class Entity
{
public:float X, Y;void Move(float x, float y){X = X + x;Y = Y + y;}
};class Player
{
public:float X, Y;const char* Name;void Move(float x, float y){X = X + x;Y = Y + y;}void PrintName(){std::cout << Name << std::endl;}
};
这样子显然太麻烦了,通过继承,我们可以自动实现重复代码的复制粘贴,让代码看上去更加整洁:
class Entity
{
public:float X, Y;void Move(float x, float y){X = X + x;Y = Y + y;}
};class Player : public Entity
{
public:const char* Name;void PrintName(){std::cout << Name << std::endl;}
};
可以看到,实例化的player同样拥有成员X,Y和Move()。