下面将介绍:
1、怎么画一个类的类图
2、怎么画多个类的类图
类图将,类分为:属性和操作2个部分。
属性:变量
操作:函数
了解c++ 的都知道c++ 有4种权限的管理:
private,public,protected,static
分别怎么表示呢?
private: -
public: +
protected: #
static: 下划线
如上图:
对应的源码就是
class test{
public:
int pub_v;
void pub_f();
private:
int pri_v;
void pri_f();
protected:
int pro_v;
void pro_f();
public:
static int sta_v;
static void sta_f();
};
多个类的类图画法
首先要了解类之间的关系
泛化关系:就是继承
sub 继承 base
依赖:
B 依赖 A。依赖关系就是B 使用到了 A 的东西。或者换句话说 A 变化会对B 有影响
关联:
就是一种强依赖关系。
B 依赖 A 。
D 和 C 互相依赖。0个或者多个D,对应一个C
往往依赖之间存在一些数字关系:
1:表示一个
0…1 : 标识0~1
0…: 表示 0个及0个以上
1…: 表示 1 个及以上
*: 表示任意个
聚合:是一种强关联关系。
简单说就是,我可以用它,但是它不是我的。
举个简单的例子:
共享单车,我可以使用共享单车,但是共享单车不是我的。
B 聚合 A
class A {
public:
void run();
};
class B {
public:
A * a;
void run(){
a->run();
}
};
A 既不是 B 构造也不归 B 释放。
组合:比聚合更强烈的关联关系
比如:
王者荣耀和亚瑟这个英雄的关系。
如果王者荣耀没了,亚瑟也就没了。
实例:
class yase{
public:
void play(){}
};
class wangzherongyao{
public:
yase *y;
wangzherongyao():y(new yase()){}
~wangzherongyao(){
delete y;
}
void play(){
y.paly();
}
};
实现关系:
将抽象的东西实现出来。
比如:
需求文档,和实现代码。
需求文档只是一个抽象的概念,实现代码实现需求文档。
class interface{
public:
interface(){}
virtual ~interface(){}
void fun()=0;
};
class implement:public interface{
public:
void fun(){}
};



