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

而程序员怎么办?

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

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

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

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

一、纵向关系

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

二、横向关系

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

依赖关系: 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. sql数据分页

    方法一.直接限制返回区间 (只适应于mysql) SELECT * FROM table WHERE 查询条件 ORDER BY 排序条件 LIMIT ((页码-1)*页大小),页大小; 优点:写法简 ...

  2. C#:用SqlBulkCopy来实现批量插入数据

    SqlBulkCopy是.net2.0的新特性,平时用的很少,但是其功能却是非常强大,对于批量插入数据性能非常优越 代码 /// /// bulk插入/// private void BulkInse ...

  3. iOS常用的加密方式

    MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...

  4. 解析iscroll-小demo

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  5. Linux环境变量PS1配置

    1. 说明: 在Shell下,我们能够拥有更加色慘斑斓的提示行信息.这能够通过改变bash的$PS1环境变量还设置,如以下就是提示行的一种: user@host$ root用户的提示是这种: user ...

  6. java 内存与内存溢出

    学习自:http://www.codeceo.com/article/jvm-memory-overflow.html 讲的很清楚

  7. slam cartographer 学习

    https://github.com/slam4code                   感谢大牛的分享

  8. 2014acm亚洲区域赛陕西赛总结

    这次是第一次出来到外面比赛,一切都是非常新鲜的,带着新鲜来到了古城西安.首先感觉就是志愿者一点都不热情.一副爱理不理的,这不是有违我大西北人的热情好客么. 直接说比赛吧. 第一天热身赛,出了两道非常水 ...

  9. OpenCV 入门示例之三:AVI 视频播放控制

    前言 在前文中给出了一个非常简短的视频播放程序,但它没有实现常规视频播放器中的播放滚动条功能,本文对此视频播放器程序加以改进,实现此功能. 滚动条的实现思路 滚动条的功能实质上就是从一帧跳跃到另外一帧 ...

  10. WPF自定义搜索框代码分享

    首先下载搜索图标: 控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html 搜索框设计过程比较简单: 1.先定义一个Rectangl ...