【编程语法-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.

通过控制这些以实现简化代码可读性。

全部评论

相关推荐

喜欢疯狂星期四的猫头鹰在研究求职打法:短作业优先
点赞 评论 收藏
分享
03-21 08:46
已编辑
门头沟学院 C++
一个什么都不会的学生:当你有硕士学历的时候HR会说就是比本科生强
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务