精华内容
下载资源
问答
  • C++类之间关系

    2018-09-30 16:27:30
    一个项目中有很多,这些类之间关系一般通过UML类图表现出来,那么之间的关系有哪些呢? 1.泛化 泛化关系:就是继承关系。这也是C++中两个之间最重要的关系,表示is-a的关系。 动物作为基类,老虎...

    大家在设计一个项目的时候,而且通常情况下需要设计出整个项目的类图。
    一个项目中有很多类,这些类之间关系一般通过UML类图表现出来,那么类与类之间的关系有哪些呢?

    • 1.泛化

    泛化关系:就是继承关系。这也是C++中两个类之间最重要的关系,表示is-a的关系。
    动物类作为基类,老虎类继承自动物类。老虎不但有动物的一切特征同时还有自己成员。
    代码体现:继承

    • 2.组合

    组合关系:整体与局部的关系,更是强调具有相同的生命周期,具有很强的耦合关系,表示contains-a关系。
    比如:老虎和虎皮的关系。只要有老虎就有虎皮,老虎没了也就没有虎皮了。
    代码体现:成员变量

    • 3.聚合

    聚合关系:也是整体和局部的关系,单独存在也是可以的,是一种很弱的耦合关系,表示has-a关系。
    比如:虎群和老虎。老虎可以离开虎群而单独存在,他们有各自的生命周期。
    代码体现:成员变量

    • 4.关联

    关联关系:表示两个类之间有关联,类之间有影响。比如老虎或者虎群和天气之间的关系就是关联关系。
    代码体现:成员变量

    • 5.接口

    接口:也是继承关系,只不过这里只提供相应的方法,而不提供实现。在子类中去实现
    比如:老虎继承吃这个接口,吃这个接口提供了具体的函数,任何一个继承这个接口的类都要实现这样的接口函数。
    代码体现:继承

    • 6.依赖

    依赖关系:表达了使用关系,也就是一个类需要另外一个类作为参数,是一种临时性的关联。依赖关系尽量是单向的,不要双向的。
    代码体现:一般指有局部变量、函数参数、返回值建立起来的不同对象之间的关系

    以上就是之间的关系!

    在这里插入图片描述

    展开全文
  • C++类之间关系2.zip

    2021-06-18 11:31:35
    C++类之间关系2课程实验及报告
  • C++类之间关系1.zip

    2021-06-18 11:31:05
    C++类之间关系1课程实验及报告
  • C++类类之间关系

    2019-03-07 19:11:34
    类之间关系在大体上分为两种,一种是纵向的,另一种是横向的。 一、纵向的就是继承,它是OO的三个特征之一 在UML中称作: 泛化(Generalization)表示为:实线+空心三角形 实现(Realization)表示为: 虚线+空心...

    类之间的关系在大体上分为两种,一种是纵向的,另一种是横向的。

    一、纵向的就是继承,它是OO的三个特征之一

     在UML中称作:

    • 泛化(Generalization) 表示为:实线+空心三角形 
    • 实现(Realization)      表示为: 虚线+空心三角形

    泛化关系: 是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为。表示类与类之间的继承关系,接口与接口之间的继承关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。

    实现关系: 是一种类与接口的关系, 表示类是接口所有特征和行为的实现。

    二、横向关系,按UML关系分为4种

    • 依赖(Dependency),表示为:   虚线+箭头
    • 关联(Association), 表示为:   实线+箭头
    • 聚合(Aggregation),表示为:    空心菱形+实线
    • 组合(Composition),表示为:   实心菱形+实线

    它们的强弱关系是:依赖 < 关联 < 聚合 < 组合 < 继承

    1.依赖

    依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是作为一种工具在使用,而并不持有对它的引用

    对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。是一种使用的关系,  即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖.

    表现在代码层面,例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。

    // Car.h
    class CCar{
        // Do something
    };
    
    // Person.h
    #include "Car.h"
    class CPerson{
        void MoveFast(CCar &pCar);
    };

    2.关联

    关联就是某个对象会长期的持有另一个对象的引用,而二者的关联往往也是相互的。关联的两个对象彼此间没有任何强制性的约束,只要二者同意,可以随时解除关系或是进行关联,它们在生命期问题上没有任何约定

    表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

    • 双向关联是指双方都拥有对方的引用, 都可以调用对方的公共属性和方法
    • 单向关联是指只有某一方拥有另一方的引用, 这样只有拥有对方者可以调用对方的公共属性和方法
    • 自身关联是指拥有一个自身的引用
    //1、双向关联
    // Husband.h
    #include "wife.h"
    class CHusband{
    public:
        CWife* pWife;
    };
    
    // Wife.h
    #include "Husband.h"
    class CWife{
    public:
        CHusband* pHuband;
    };
    
    
    //2、单向关联
    // Husband.h
    class CHusband{
    public:
        int nMoney;
        void GoShopping();
    };
    
    // Wife.h
    #include "Husband.h"
    class CWife{
    public:
        CHusband* pHuband;
    };

    3.聚合

    聚合是强版本的关联。它暗含着一种所属关系以及生命期关系。聚合是整体与部分的关系,且部分可以离开整体而存在,如,车和轮胎是整体和部分的关系,轮胎离开车还可以存在。他们可以具有各自的生命周期。

    表现在代码层面,和关联关系是一致的,只能从语义级别来区分。

    4.组合

    组合是关系当中的最强版本,它直接要求包含对象对被包含对象的拥有以及包含对象与被包含对象生命期的关系。他同样体现整体与部分间的关系,但此时整体与部分是不可分的整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑。

    表现在代码层面,和关联关系是一致的,只能从语义级别来区分。

     

    转自类之间的关系(C++)看懂UML类图和时序图

    展开全文
  • C++类之间关系

    2014-04-25 17:27:31
    C++类之间关系 摘要: 本文讲解面向对象C++程序设计中类之间关系。并用UML类图描述这些关系。 关键词: 面向对象 对象 C++ UML 适用对象 对C++有一定基础的初级同学 面向对象编程的...

    C++中类之间的关系

    摘要:

    本文讲解面向对象C++程序设计中类之间的关系。并用UML类图描述这些关系。

    关键词:

    面向对象 类 对象 C++ UML

    适用对象

    对C++有一定基础的初级同学

    面向对象编程的核心:类

    面向对象的思想下编程过程可以减化为:

    1. 识别和发现备选对象

    2. 给对象分配职责

    3. 确定对象之间的关系

    下面列出一些术语,如果同学位对这些术语还不太了解,那么请要求我给大家作补充说明。

    编号

    术语

    原文

    1

    Class

    2

    对象

    Object

    3

    实例

    Instance

    4

    属性

    attribute

    5

    操作(成员函数)

    operation

    6

    关系

    relationship

    7

    UML

    Unified Modeling Language

    8

    类图

    Class diagram

    类之间的关系

    关系1: 没有关系

    两个对象之间如果没有关系,那么它们是孤立的。

    clip_image002

    关系2: 关联关系 (Association)

    clip_image004

    A和B之间是关联关系;

    C与自己关联

    关系3:有方向的关联关系 (DirectedAssociation)

    关联还可以有方向性的。如下图

    clip_image006

    这种关系是关联关系的一种。

    关系4: 聚合关系(Aggregate)

    聚合关系也是关联关系的一种,这种关系能确定两个类之间的部分或整体关系。

    clip_image008

    关系5: 组合关系(composite)

    clip_image010

    组合关系也是一种部分和整体之间的关系。您能区分组合与聚合的区别吗?这个问题当作业来讨论吧。

    关系6:泛化关系(Generalization)

    clip_image012

    泛化关系就是常见的继承关系。Student.csdn.net社区中的用户可以模型化为上图。

    关系7:依赖关系(Dependency)

    clip_image014

    比如用户有一个登录的操作,用户密码在数据库在以MD5的形式存放,登录操作要用MD5类提供的decode()方法进行明码到密码的转换。

    关系8:实现(Realization)

    clip_image016

    关系9:参数化关系(Parameter)

    clip_image018

    这种关系UML中还没有定义,我暂时为它命名这Parameter关系吧。

    作业:

    1. 说说聚合与组合关系的差别。

    2. 尝试用C++代码代码描述上述关系。

    http://pleasetojava.iteye.com/

    展开全文
  • UML之C++类关系总结

    千次阅读 2015-12-11 22:35:23
    UML之C++类关系总结 记----作为面向对象编程的绝对核心,理解好类之间关系对程序设计具有非常重要的意义。通过查阅网上相关资料,笔者将利用VISIO2013作为UML建模工具,对类之间进行阐述整理。   关系有...

    UML之C++类间关系总结

    记----类作为面向对象编程的绝对核心,理解好类之间的关系对程序设计具有非常重要的意义。通过查阅网上相关资料,笔者将利用VISIO2013作为UML建模工具,对类之间进行阐述整理。

    类的关系有非常多种,但是总体可以划分为横向关系和纵向关系,纵向关系主要是指继承关系,横向关系有依赖关系、关联关系、聚合关系以及组合关系,他们的强弱关系为:依赖关系<关联关系<聚合关系<组合关系。下面对各个关系进行详细的阐述。

     

    横向关系

    1、依赖关系

    UML关系图


    解释:人要生存就必须进行呼吸,而呼吸就需要新鲜的空气,所有说空气是作为人生产的一种工具,而人不拥有这种工具

    代码:

    #include<Air.h>
    class Human
    {
           void breathe()
           {
                  Air fleshAir = new Air();
                  fleshAir.releaseAir();            
            }
    }

    关联关系类似朋友的关系,可以分为双向关联,单向关联以及自身关联。

    a.    双向关联


    解释:应聘者和职位之间的关系就是双向关联的关系,双方都知道对方的存在,并且可以调用对方的公共属性及方法。双向关联在代码的表现为双方都拥有对方的一个指针,引用或者是值。

    代码如下:

    class Employee
    {
    public:
        Position* position;
    };
     
    class Position
    {
    public:
        Employee* employee;
    };

    b.    单向关联

    单向关联类似明星和粉丝的关系,粉丝肯定知道明星,但是明星就不认识粉丝。表现出了一种引用的关系。

    解释,订单中含有商品的所有信息,而商品中对订单信息完全不清楚

    代码:

    class Order
    {
    public:
        Product* product;
    };
     
    class Product
    {
    public:
    };

    c.    自身关联

    对自身的引用,

    3.聚合关系

    当类关系中涉及到整体和部分的时候,就可以使用聚合或者组合,当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚合关系。

    解释:公司的老板和其员工是一种聚合的关系,当老板不存在的时候,员工可以独立存在。

    代码:

    class Employer
    {
    public:
        Preson preson;
    };
     
    class Preson
    {
    public:
    };
    4、组合关系

    组合是一种非常强的关系,其UML类图表示如下:

    解释:公司和部门就是一种组合关系,但公司消失的时候,部门也会随之消失。

    代码:同聚合!

    纵向关系

    5、继承关系

    如果两个类存在泛化的关系时就使用,例如父和子,动物和老虎,植物和花等。

    解释:鱼也是一种动物,其会继承动物的属性,

    代码:

    #include"animal.h"
    class Fish :public Animal
    {
    };

    最后,总结下面向对象编程的常用术语:

    编号

    术语

    原文

    1

    Class

    2

    对象

    Object

    3

    实例

    Instance

    4

    属性

    attribute

    5

    操作(成员函数)

    operation

    6

    关系

    relationship

    7

    UML

    Unified Modeling Language

    8

    类图

    Class diagram

     

    感悟:发现很多概念很容易理解,但是真要用文字表达出来还是有点困难,上述总结可以有些不足和错误。另外,总结也能不断思考问题,一天结束,回去洗洗睡了。

     

    文中参考的地址:

    http://www.360doc.com/content/11/0614/14/935385_126863863.shtml

    http://pleasetojava.iteye.com/blog/1062520

    http://blog.csdn.net/qmroom/article/details/3083928

     

     

    2015年12月11日星期五

    重庆大学

    行者无疆

    展开全文
  • 主要介绍一下类之间关系,也就是面向对象编程先介绍两个术语 Object Oriented Programming OOP面向对象编程 Object Oriented Design OOD面向对象设计 对于类之间关系有很多种,但是我认为理解3种足够 ...
  • C++类之间的六种关系及UML图

    千次阅读 2018-07-25 23:00:10
    依赖关系 一个类似另一个的函数参数或函数返回值,例如zhangSan依赖于Car,张三工作时需要用到车void Work(Car p); 张三修车,修完了返回值为一辆车Car fix(Car *p); #include &amp;lt;iostream&amp...
  • C**++的类之间关系
  • 浅谈c++类之间的组合关系

    千次阅读 2018-06-19 12:22:16
    一、首先我们要知道c++类之间有哪些关系。1.继承 继承指的是一个继承另外的一个,继承的叫做子类,被继承的叫做父类。语法形式为:class A{ }; class B:public A{ }; 其中A为父类,B为子类,public ...
  • C++类之间关系

    千次阅读 2014-07-04 02:17:39
    A与B有以下几种关系: neijian
  • C++ MSDN的总图,显示了所有 之间关系 非常有用!~~
  • cryengine3中武器创建与C++之间关系
  • C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于...
  • 很多时候我们对于C和C++的区别不是很清楚,以至于弄混的情况并不少见。那C语言和C++语言到底是怎么回事呢?  首先,我们来看下百度百科对语言和C++语言描述,相对而说也还算是比较权威的。 C语言  ...
  • 学习面向对象分析(OOD)与面向对象设计(OOD),在获取并列出概念之后,必须要明确类之间关系。这些关系由弱到强大致分为一下几种:依赖、关联、聚合、组合、继承。下面将分别以我最简单的语言进行概述。 ...
  • 类之间的继承(Inheritance between classes) 的一个重要特征是继承,这使得我们可以基于一个生成另一个的对象,以便使后者拥有前者的某些成员,再加上它自己的一些成员。例如,假设我们要声明一系列类型的...
  • 可以分析源代码中各个类之间关系 是基类或之 继承关系
  • C++中同名函数之间关系

    万次阅读 2018-07-24 23:24:45
    C++中同名函数有三种关系: 重载(overlode):相同作用域;函数名相同;参数列表不同(参数类型不同,或者参数个数不同,或者参数个数和参数类型都不相同);返回类型随意。 覆盖(override):不同作用域下...
  • 最重要的,也是老师在这堂课上展示出来的,就是在出现组合这种情况,也就是里面的数据成员使用了其他的对象的时候,如果不采用这种形式,就需要考虑很多哪个放在前面这一的问题,非常麻烦。 老师上课讲...
  • 一、RTTI Run-time type information (RTTI) is a mechanism that allows the type of an object to be determined during program execution. ...There are three main C++ language elements to run-time type
  • [C/C++]详解C++和对象

    万次阅读 多人点赞 2021-05-24 13:09:01
    C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 2.的引入 在C++中的结构体内不仅可以定义变量,也可以定义函数。在C++中常用class来代替struct struct Stud
  • C++中为编写头文件的时候,总是需要#include一大堆头文件。这两天认真的研究过后发现其中的大部分都是不需要的。 C++编辑器需要做的事情其实很简单1:扫描符号2:确定对象的大小。稍后你就会发现,为了确定这两件...
  • C#与C++之间类型对应关系

    万次阅读 2013-02-27 10:51:15
    //C++中的DLL函数原型为  //extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1, unsigned char* 变量名2)  //extern "C" __declspec(dllexport) bool 方法名二(const unsigned char* 变量名1...
  • 托管和非托管的数据类型关系. 做开发手中必备的参考资料
  • c++ 的互相调用的方法,是今天弄明白的,这里提供例子和说明给大家参考,从而告诉大家C++类之间关系,是不能烂用乱用的.希望能给大家启发.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 267,586
精华内容 107,034
关键字:

c++类之间的关系

c++ 订阅