【编程语法-C++】课堂总结29-30
纯虚函数
class Entity:
{
public:
virtual std::string GetName() = 0; // 等于0让这个函数为纯虚函数
};
class Player : public Entity
{
private:
std::string m_Name;
public:
Player(const std::string& name) { m_Name = name}
std::string GetName() override { return m_Name; }
};
// 当一个类中的纯虚函数没有被重载时,是不能进行实例化的
Entity e; // 会报错
Player p1; // 不会报错, 但当我们把Player的重载函数注释后也会报错,因为继承的纯虚函数也没有具体实现接口
// 这个实际上就是一个接口, c++不存在像java那样的interface关键字
class Printable:
{
public:
virtual std::string GetClassName() = 0; // 等于0让这个函数为纯虚函数
};
class Entity : public Printable
{
public:
virtual std::string GetName() = 0; // 等于0让这个函数为纯虚函数
std::string GetClassName() override { return "Entity"; }
};
class Player : public Entity, Printable
{
private:
std::string m_Name;
public:
Player(const std::string& name) { m_Name = name}
std::string GetName() override { return m_Name; }
std::string GetClassName() override { return "Player"; }
};
可见度和访问控制
private, protected, public.
通过控制这些以实现简化代码可读性。

