C++组件简要介绍

多线程编程出现的主要问题为:死锁(deadlock)、无限延迟(indefinite postponement)以及数据竞争(data race)。

在面向对象应用程序中使用多线程最有效的途径就是通过构建于C++进程间通信组件(IPC)、C++同步组件以及C++互斥组件之上的应用框架。(application framework)。而构建IPC、同步和互斥组件的最有效途径就是构建接口类(interface class)和类库(class library),让他们封装提供线程和API任务的操作系统服务。

常见的C++组件有4种:类(class)、集合和容器(collection and container)、类库(class library)、应用框架(applicationframework)。

类可以用于实现抽象数据类型。数据类型是数据值和用于操纵该数据的一套运算的集合。抽象数据类型是定义数据类型的数学概念。

类可以用来创建软件模型。一种为:为了试验和分析,对一些过程、概念、思想的放大表示。另一种模型,是用软件对某些现实世界的任务、过程或思想的再现;这一模型的目的是为了让他像真实对应物、系统或应用程序的一部分一样发挥作用。软件取代人工系统或某些物理体的某些组件。

实现抽象数据类型的类与作为模型的类之间的区别:一般而言,数据类型用于支持编程工作。即程序员可以使用float、int、char、bool或rational等,让他们各施其责。就像钉住面板的钉子一样。这些钉子是用来建造房子的,但他们不是房子结构的一部分。当C++类用作模型时,类通常是编程过程的最终结果,或者表示最终结果架构的重要部分。用作模型的类不仅仅是一种数据类型。模型化类实际上作为现实人物、地点、事物或思想的重要替身。软件模型抓住了真是事物的本质。

常见的类类型有八种:

@具体类(concreteclass):独立类;表示一个祖先-后代世系终止的结束类。

@抽象类(abstract class):为所有子类提供布局和蓝图的类。不能声明此类型的对象;必须派生新类,对抽象基类中声明任何虚函数提供定义。

@接口类(interfaceclass):用于修改或增强另一个类或类集合的接口。为了为非面向对象代码和数据提供面向对象性而用来封装独立函数。容器的适配器类,就是一个接口类。

@节点类(nodeclass):提供继承和多态的基础;不包含纯虚函数。

@支持/应用类(supportclass/ utility class):不管在任何域内,对于不同的应用都非常有用。

@域类(domainclass):创建类在指定的域内模拟部分现实或实体。

@集合和容器类(collectionand container class):其他对象组的一般性容纳器。

补充:

接口类:接口类也可以充当非任何类成员函数的包装器。当我们包装在线程处理、进程间通信和多任务处理中使用的操作系统基本要素时,接口类就会发挥作用。通过封装操作系统基本要素,为用户提供这些要素的一般性借口,是代码跨平台的移植性更强。

节点类:与抽象基类一样,节点类设计用于继承。与抽象类不一样的是,节点类不包含纯抽象虚函数。节点类可以即时使用。不过节点类的设计是着眼于将来的。它被设计成可重用类。它提供可以在派生类中覆盖的虚成员函数。

节点类提供了可悲派生类继承的受保护数据成员和成员函数。它使用基类的指针允许在后代类中操纵成员函数。用户可以通过多台和集成特殊化节点类。节点类既可以是基类,也可以是派生类。接地阿雷为类层次提供了实质内容。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值