所谓继承,就是在原有的类的基础上,通过继承它并添加一些新的成员,从而产生出一个新的类。例如我们在游戏有实体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()。