C++自学笔记12(继承)

C++类在之前讲到有一个性质是默认私有,那我们来讲第二个性质“继承”。

继承就是各个类之间允许有相互的层级关系。

我们创建一个实体类包含所有实体内部有XY坐标,speed速度。

我们还有玩家类、载具类、坐骑类等等,他们都需要有XY坐标和speed,但是他们又都有各自特有属性。(玩家需要有暴击、攻速、装备栏,载具需要人数、油量,坐骑需要有时装、发育阶段)所以都具有位置属性那我们就简化它,让他直接继承实体类,从而简化代码。

class Entity()
{
public:
    float X,Y;
    void Move(int xa,int ya)
    {
        X = xa;
        Y = ya;
    }
};
calss Player()
{
public:
    const char* message
    float X,Y;
    void Move(int xa,int ya)
    {
        X = xa;
        Y = ya;
    }
    void Print()
    {
       std::cout<<X<<","<<Y<<std::endl;
    }

};
int main()
{
    Player e;
    
    std::cin.get();
}

 我们可以看到

float X,Y;
    void Move(int xa,int ya)
    {
        X = xa;
        Y = ya;
    }

在Entity与Player类中这个代码块都重复出现,多创建几个就多复制几个,对代码而言没有什么意义,所以我们让Player类继承Entity类中所有函数。

class Entity()
{
public:
    float X,Y;
    void Move(int xa,int ya)
    {
        X = xa;
        Y = ya;
    }
};
calss Player():public Entity
{
public:
    const char* message
    void Print()
    {
       std::cout<<X<<","<<Y<<std::endl;
    }

};
int main()
{
    Player e;
    e.Move(6,4);
    e.print();
    std::cin.get();
}

 如此就继承了Entity类中所有函数,也不用再写重复代码了。Entity就是父类,Player就是其子类具有除父类以外的扩展函数。创建Player就可以即使用本身函数又使用父类公有出的函数,因为我们用到的是Public Entity。

至此Player类既有Player类型又有Entity类型,一个类型有多个类型,我们称为“多态”,理解这一概念就好。

继承就是各个类之间允许有相互的层级关系,子类比父类多点东西,就这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少杰是小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值