我们知道,表达方式分为很多种,对于同一种事物,比如爱情,画家用图画和色彩表达爱恋;音乐家用音符和节奏表达喜爱之情,作家用文字表现爱慕。

而程序员怎么办?

程序员构建类,用类来表达单身之苦。因此,类就是描述特定事物的计算机语言表达方式。

类通常由成员变量和成员函数组成。成员变量用来描述个人的性别、身高、姓名、学历等信息。成员函数用来描述个人动作信息,如待人接物的反应,头脑的灵活运用,语言风趣幽默等动作。有了这两个方面的描述,一个单身人的各方面的条件就差不多描述丰富了,就等待姑娘们是否青睐了。

姑娘们是否青睐,就涉及到了两者之间的关系了。用计算机表达,就是类与类之间的关系。

总体上,类与类之间的关系可以分为两种:纵向关系和横向关系。

一、纵向关系

就是继承关系或实现关系,此处有时间再讲。

二、横向关系

关系强弱:依赖关系<<平等关系<<聚合关系<<组合关系

依赖关系: A uses B。A的功能依赖与B,但A并不持有B。

平等关系:A has B。 A和B平等,就像人和人之间一样,可以拥有对方,但不可占有对方。

聚合关系:A owns B. A拥有B,B属于A,但B还可以被其它人分享。如公司和员工,人和家。

组合关系:B is a part of A。A 占有B,且A消亡B必定消亡。如人和心脏,地球和生命。

计算机语言表达这几种关系的方式:将B对象作为A的成员变量或者将B作为参数传入A的成员函数中。

总结:类与类之间发生关系不过以下几种方式:

1.类A对象作为类B的成员变量。

2.类A对象作为类B的成员函数的参数。

类要有用,必须要向外暴露接口。这个接口要么能够返回数据,要么能够处理一些工作,否则如果类完全封闭,不暴露给别人能够使用的接口,那跟废物有什么区别呢?

暴露接口就是给别人利用自己的机会,也是实现自己价值的必要手段。

类是一种设计蓝图,而对象才使蓝图成活。繁复的大千世界和事物的关系,可以用图画描述,可以用语言描述,更可以用类来描述。

脑海里一定要有用类来描述各种事物,各种事物之间复杂关系的能力的模型,这是学好计算机语言的第一步。

c++类之间的关系的更多相关文章

  1. Java 中类与类之间的关系

    在java中类和类之间的关系基本上有依赖.关联.聚合.组合等 一.继承关系     继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在J ...

  2. 从零开始学C++之RTTI、dynamic_cast、typeid、类与类之间的关系uml

    一.RTTI Run-time type information (RTTI) is a mechanism that allows the type of an object to be deter ...

  3. oc之封装与类之间的关系

    1. 面向对象的特征-封装? 封装: 现实生活中的封装: 将很多的小东西 塞在1个大口袋里面. 好处: a. 对外部屏蔽. b. 方便管理. 代码的封装: 函数/方法 就是1种封装的体现: 将一段代码 ...

  4. java 类与类之间的关系 及uml图

    类与接口之间的关系 : 继承 类与类之间的关系 :继承关系  包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(associ ...

  5. 全面解释java中StringBuilder、StringBuffer、String类之间的关系

    StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...

  6. 【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合

    java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: • 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于 ...

  7. python之路--类与类之间的关系

    类和类之间的关系 在我们的世界中事物和事物之间总会有一些联系. 在面向对象中. 类和类之间也可以产生相关的关系 1. 依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻 ...

  8. Day18--Python--面向对象--类与类之间的关系

    1. 依赖关系 在方法中引入另一个类的对象 (最不紧密的一种关系) 依赖关系都是把另一个对象当做参数 class Elephant: def __init__(self, name): self.na ...

  9. UML类图及类与类之间的关系

    原文地址:http://www.uml.org.cn/oobject/201211231.asp 类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的 ...

  10. python --- 18 类与类之间的关系, 特殊成员

    类与类之间的关系 一.依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作      随时可以更换另外一个东西来完成此操作 此时的关系是最轻的. 二.关联关系(组合关系,聚合关系) 1.一对 ...

随机推荐

  1. ios 视图的旋转及应用

    有时候,需要做出如下图所示的效果,这就需要用到视图的旋转了 1.首先将旋转的值由角度转换为弧度: #define degreesToRadinas(x) (M_PI * (x)/180.0) 注:M_ ...

  2. 安装gi的时候回退root.sh的运行

    </pre><pre name="code" class="html">/u01/app/11.2.0/grid/crs/install ...

  3. 配置mysql 编码

    配置mysql 编码 [client]default-character-set=utf8mb4 default-storage-engine=INNODB [mysql]default-charac ...

  4. wifi认证Portal开发系列(二):FreeRadius的安装和测试、关联Mysql

    注:本次安装是基于FreeRadius 3版本进行安装配置的,在配置Mysql的过程中,与2版本有些不同.操作系统是CentOS 7 一.准备工作 工具的安装 #安装rz.sz命令用于文件上传 yum ...

  5. CISCO Configuration Examples and TechNotes

    from:  http://www.cisco.com/c/en/us/tech/ip/ip-routing/tech-configuration-examples-list.html Border ...

  6. 【设计模式】C++单例模式的几种写法——Java自动加载内部类对象,C++怎么破?

    单例模式是最简单的设计模式,就让我像玩简单的游戏一样写下去吧. v1: 简单模式 和这个版本有过一面之缘,但不敢苟同. class Singleton { private: Singleton() { ...

  7. spark on yarn 配置history server

    spark在yarn模式下配置history server 1.建立hdfs文件– hadoop fs -mkdir /user/spark– hadoop fs -mkdir /user/spark ...

  8. hibernate的一级缓存和二级缓存详解

    hibernate为我们提供了一级缓存和二级缓存,目的是为了减少应用程序对数据库的访问次数. 一级缓存: (1)所谓一级缓存就是session级别的缓存,当我们使用他的范围是当前的session,当s ...

  9. 【puppeteer+Node.js】学习

    总结了一下有关puppeteer的学习的网站,以后还会继续更新 puppeteer 介绍 Puppeteer是一个通过DevTools Protocol控制headless chromium的高级no ...

  10. sigar 监控服务器硬件信息

    转载 http://www.cnblogs.com/jifeng/archive/2012/05/16/2503519.html 通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 1 ...