热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

C++软件工程中的继承

C++软件工程中的继承概述流行的软件重用技术继承对软件重用的贡献类库的处理继承而不是修改基类概述软件重用:在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程.软件重用

C++ 软件工程中的继承

  • 概述
  • 流行的软件重用技术
  • 继承对软件重用的贡献
  • 类库的处理
  • 继承而不是修改基类
概述

软件重用: 在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程.
《C++ 软件工程中的继承》
软件重用的好处:

  • 提高软件生成率
  • 减少软件开发人员数量
  • 缩短开发周期
  • 降低软件开发和维护费用
  • 生产更加标准化的软件
  • 提高软件开发质量
  • 增加软件系统的互操作性
  • 使开发者易于适应不同性质的项目

软件重用形式:

  • 源代码模块或者 一级的重用
  • 二进制形式的重用, 如组件重用
  • 组装式重用, 如集成多程序功能
  • 分析级别重用
  • 设计级别重用
  • 软件文档重用
流行的软件重用技术
  • 库函数: 只要知道函数的名称, 返回值的类型, 函数参数和函数功能就可以对其进行调用
  • 面向对象: 与函数库对应. 很多面向对象语言为应用程序开发者提供了易于使用的类库. 通过方法, 消息, 类, 继承, 封装, 和实例等机制构造软件系统
  • 模板: 用各种各样的模板 (如文档模板, 网页模板等), 快速地建立对应的软件产品
  • 设计模式: 设计模式作为重用设计信息的一种技术, 在面向对象设计中越来越流行
  • 构件 (Component), 构件 (Architectural), 框架 (framework)
继承对软件重用的贡献

类库的出现使得软件的重用更加方便. 类构件的重用方式:

  • 实例重用: 定义类对象直接解决问题
  • 继承重用: 继承已有的类的派生类, 用一种安全的手段修改已有类构件, 然后再产生对象解决问题

《C++ 软件工程中的继承》

类库的处理
  • 对类库中类的声明一般放在头文件中. 类的实现 (函数的定义部分) 是单独编译的, 以目标代码形式存放在系统某一目录下
  • 用户使用类库时, 不需要了解源代码, 但必须知道头文件的使用方法和怎么样去连接这些目标代码, 以便源程序在编译后与之连接
  • 由于基类是单独编译的, 在程序编译时只需对派生新增的功能进行编译, 这就大大提高了调试程序的效率
  • 如果在必要时修改了基类, 只要基类的公用接口不变, 派生类不必修改. 但基类需要重新编译, 派生类也必须重新编译, 派生类也必须重新编译, 否则不起作用
继承而不是修改基类
  • 在类库中, 一个基类可能已被指定与用户所需要的多种组建立了某种关系, 因此类库中的基类是不容许修改的
  • 有许多基类是被程序的其他部分或其他程序使用的, 这些程序要求保留有的基类不受破坏
  • 用户往往得不到基类的源代码
  • 实际上, 许多基类并不是从已有的其他程序中选取来的, 而是专门作为基类设计的
  • 在面向对象程序设计中, 需要设计类的层次结构. 从最初的抽象类出发, 每一层派生类的建立都逐步地向着目标的具体实现前进

推荐阅读
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • 本文档旨在提供C语言的基础知识概述,涵盖常量、变量、数据类型、控制结构及函数定义等内容。特别强调了常量的不同类型及其在程序中的应用,以及如何正确声明和使用函数。 ... [详细]
  • 如何为PDF文档添加水印?简单步骤实现
    为了增强PDF文档的安全性和版权保护,添加水印是一个有效的方法。本文将介绍如何通过专业软件或在线工具轻松为PDF文档添加水印,确保您的文档在共享时仍能保持其独特性和安全性。 ... [详细]
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 本文档提供了首次周测的答案解析,涵盖特殊符号、命令作用、路径说明以及实战练习等内容。 ... [详细]
  • Lua字符串1.字符串常见形式字符串或串(String)是由数字、字母、下划线组成的一串字符。Lua语言中字符串可以使用以下三种方式来表示:•单引号间的一串字符。 ... [详细]
  • 本文探讨为何Request对象的外观设计被认为是精妙的,重点在于其如何利用门面模式确保数据安全,同时保持系统的高效交互。 ... [详细]
  • IA64架构下常见编程陷阱探讨
    本文深入探讨了IA64架构中常见的一个编程错误案例,该案例揭示了当开发者试图绕过编译器的某些限制时可能遇到的问题。通过具体分析IA64架构的特点及其对全局变量处理的方式,本文旨在为开发者提供避免此类问题的有效建议。 ... [详细]
author-avatar
陈艹桂肀琰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有