【编程语法-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.
通过控制这些以实现简化代码可读性。