c++中继承,关联,组合,聚合以及依赖的区别以及UML表示

目录

 

继承

(1)普通继承关系

(2)抽象继承关系

关联

(1)单向关联关系

(2)双向关联关系

(3)自关联关系

聚合

组合

依赖


继承

继承也叫作泛化关系,用于描述父子之间的关系,父类又称为基类或者超类,子类又称作派生类,在uml中,泛化关系用空心三角形实线来表示

(1)普通继承关系

假如定义了一个person,student 以及teacher类

class Persion
{
public:
    string getName()
    {
        return name;
    }
    void setName(string name)
    {
        this->name = name;
    }
protected:
    void playBasketball()
    {
        pass();
    }
private:
    void pass()
    {
    }
private:
    string name = "Jack";
};

此类对应的uml为

class Student : public Persion
{
public:
    void study()
    {
    }
private:
    string studentNo;
};
class Teacher : public Persion
{
public:
    void teach()
    {
    }    
private:
    string teacherNo;
};

那么,用uml表示这种关系应当为

(2)抽象继承关系

比如想实现一个链表(Link),插入(insert)与删除(remove)动作让子类去实现,链表本身只实现统计链表中元素个数的动作(count),然后有一个子类单向链表(OneWayLink)去实现父类没有实现的动作,c++代码为:

// 抽象类(含有纯虚函数的类)
class Link
{
public:
    virtual void insert() = 0;
    virtual void remove() = 0;
    int count()
    {
        return 0;
    }
};</
  • 12
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值