类的继承(inheritance)
继承使类之间有了相互关联的层级关系,从最开始的父类中可以创建出很多的派生类,它可以帮助我们避免很多重复的代码。
举个例子
#include <iostream>
class Entity
{
public:
float X, Y;
void Move(float xa, float ya)
{
x += xa;
y += ya;
}
};
class Player
{
public:
const char* Name;
float X, Y;
void Move(float xa, float ya)
{
x += xa;
y += ya;
}
void PrintName()
{
std::cout << Name << std::endl;
}
};
创建一个实体类,包含位置与移动方法,再创建一个玩家类,仅仅在上述基础上添加了名字。这时会发现,二者的区别只在于添加了名字,与打印名字。其中存在大量的代码重复,这种场景就很适合使用继承。
我只需要在声明Player
类时,写为:
class Player : public Entity
这样,Player
类同时是Player
类型与Entity
类型。可以称这种性质为多态,意思是用同一种符号表示不同的类型,在这里就是可以用Player
的符号,调用Entity
中的内容。
教程来源:The Cherno C++ 教程