c++类之间的关系
我们知道,表达方式分为很多种,对于同一种事物,比如爱情,画家用图画和色彩表达爱恋;音乐家用音符和节奏表达喜爱之情,作家用文字表现爱慕。
而程序员怎么办?
程序员构建类,用类来表达单身之苦。因此,类就是描述特定事物的计算机语言表达方式。
类通常由成员变量和成员函数组成。成员变量用来描述个人的性别、身高、姓名、学历等信息。成员函数用来描述个人动作信息,如待人接物的反应,头脑的灵活运用,语言风趣幽默等动作。有了这两个方面的描述,一个单身人的各方面的条件就差不多描述丰富了,就等待姑娘们是否青睐了。
姑娘们是否青睐,就涉及到了两者之间的关系了。用计算机表达,就是类与类之间的关系。
总体上,类与类之间的关系可以分为两种:纵向关系和横向关系。
一、纵向关系
就是继承关系或实现关系,此处有时间再讲。
二、横向关系
关系强弱:依赖关系<<平等关系<<聚合关系<<组合关系
依赖关系: 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++类之间的关系的更多相关文章
- Java 中类与类之间的关系
在java中类和类之间的关系基本上有依赖.关联.聚合.组合等 一.继承关系 继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在J ...
- 从零开始学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 ...
- oc之封装与类之间的关系
1. 面向对象的特征-封装? 封装: 现实生活中的封装: 将很多的小东西 塞在1个大口袋里面. 好处: a. 对外部屏蔽. b. 方便管理. 代码的封装: 函数/方法 就是1种封装的体现: 将一段代码 ...
- java 类与类之间的关系 及uml图
类与接口之间的关系 : 继承 类与类之间的关系 :继承关系 包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(associ ...
- 全面解释java中StringBuilder、StringBuffer、String类之间的关系
StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...
- 【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合
java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: • 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于 ...
- python之路--类与类之间的关系
类和类之间的关系 在我们的世界中事物和事物之间总会有一些联系. 在面向对象中. 类和类之间也可以产生相关的关系 1. 依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻 ...
- Day18--Python--面向对象--类与类之间的关系
1. 依赖关系 在方法中引入另一个类的对象 (最不紧密的一种关系) 依赖关系都是把另一个对象当做参数 class Elephant: def __init__(self, name): self.na ...
- UML类图及类与类之间的关系
原文地址:http://www.uml.org.cn/oobject/201211231.asp 类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的 ...
- python --- 18 类与类之间的关系, 特殊成员
类与类之间的关系 一.依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作 随时可以更换另外一个东西来完成此操作 此时的关系是最轻的. 二.关联关系(组合关系,聚合关系) 1.一对 ...
随机推荐
- No bean named 'cxf' is defined
1.错误描写叙述 严重:Exception starting filter CXFServlet org.springframework.beans.factory.NoSuchBea ...
- redis安装报错
错误原因大概是这个: creating server tcp listening socket 127.0.0.1:6379: bind No error 解决方案如下按顺序输入如下命令就可以连接成功 ...
- WikiCFP--A Wiki for Calls For Papers
WikiCFP--A Wiki for Calls For Papers ---->www.wikicfp.com/cfp/
- POJ3009 Curling 2.0(DFS)
迷宫问题求最短路. 略有不同的是假设不碰到石头的话会沿着一个方向一直前进,出界就算输了.碰到石头,前方石头会消失,冰壶停在原地. 把这个当作状态的转移. DFS能够求出其最小操作数. #include ...
- Boost.Asio c++ 网络编程翻译(11)
*_at方法 这些方法在一个流上面做随机存取操作.你来指定read和write操作从什么地方開始(offset): async_read_at(stream, offset, buffer [, co ...
- 开源监控软件ganglia
开源监控软件ganglia安装手册 Ganglia是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等 ...
- SQL ROW_NUMBER() 分页使用示例
ALTER PROC [dbo].[TestProPage] , AS BEGIN SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY IndexID ...
- ios中实现对UItextField,UITextView等输入框的字数限制
本文转载至 http://blog.sina.com.cn/s/blog_9bf272cf01013lsd.html 2011-10-05 16:48 533人阅读 评论(0) 收藏 举报 1. ...
- Eclipse + JDK + tomcat开发环境配置
第一步:下载jdk和tomcat:JDK下载 Tomcat下载 最新的jdk为1.6.10,tomcat为6.0,建议jdk1.4以上,tomcat4.0以上 第二步:安装和配置 ...
- OpenFileDialog对话框Filter属性(转)
OpenFileDialog对话框的Filter属性说明: 首先说明一个示例,分析一下Filter属性的构成:“ Excel文件|*.xls ”,前面的“Excel文件”成为标签,是一个可读的字符串, ...