3.1 基于类的软件复用技术

  C++中的类库技术是软件复用的基础,在软件开发过程中,程序员通过调用类库中的函数可以达到软件复用的目的。比如,调用C++类库中的输入输出流函数可以实现输入输出的功能。如下:

#include<iostream>

#include<string>

int main{

string in_string;

cout<<“please enter your name”; 论文网 http://www.lw54.com

cin>>in_string;

if(in_string.empty())

cerr<<”error:input string is empty!n”;

else cout<<”hello,”<<in_string<<”!n”;

}

3.2 基于继承特性和派生类的软件复用技术

  C++语言中,通过其继承特性,可以在原有的类的基础之上生成新的类,原有的类我们称之为基类,新生成的类我们称之为派生类。继承技术是C++语言的一个重要特性,也是实现软件复用的一种重要技术。利用继承技术派生出新类时,我们不需要完全重新开始写代码,每一个派生类都继承了基类的数据成员和成员函数,派生类只需要编写出与基类行为不同的扩展特性即可,因此它大大简化了程序量,提高了工作效率。另外,在派生类的基础之上,我们还可以进一步设计新的派生类,由此可见,派生类的设计可以实现树形发展。继承关系图如下所示:

        图一 继承关系图

基类和派生类的定义如下:

class Base {

public:

foo( int );

// ...

protected:

int _bar;

double _foo_bar;

};

class Derived : public Base {

public:

foo( string ); 作文 http://www.lw54.com/zuowen/

bool bar( Base *pb );

void foobar();

// ..

protected:

string _bar;

};

简历大全 http://www.lw54.com/html/jianli/

3.3 基于多态特性的软件复用技术

  多态特性是C++语言的一种重要属性,利用C++的多态属性,可以很好的实现软件复用。概况来说,多态特性主要从三个方面来实现软件复用,分别为:运算符重载、函数重载和虚函数技术。其中前面两个属于静态多态特性,而后面一个属于动态多态特性。下面分别就几种多态技术进行介绍:

  (1)C++中自带的运算符只针对某些数据类型适用,对某些数据类型是不适用的,为了扩大运算符的适用范围,提出了运算符的重载。运算符重载就是对已有的运算符进行重新定义,赋予其另一种功能,从而适应不同的数据类型。进行运算符重载的关键是要准确理解运算符的定义,从而把原来的运算符变换为一个运算符函数,进而进行调用,运算符重载的实例如:

complex operator+(complex c1,c2)

{ complex result(0,0);

result.setreal(c1.getreal()+c2getreal());

result.setimaginary(c1.getimaginary()+c2.getimaginary());

return result;

}

  上面实例实现了对加法运算符的重载,C++中自带的加法运算符不能直接进行复数的加法,通过重载,可以进行复数的相加。

  (2)函数重载所谓函数重载是指同一个函数名可以对应着多个函数的实现。例如,可以给函数名max()定义多个函数实现,该函数的功能是求两个数中较大的数,一个函数实现是求两个int型数中较大的数,另一个实现是求两个浮点型数中两个较大的数,后面两个函数对应的参数不是两个。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型或者参数的个数不同。

本论文来自http://www.lw54.com原文链接:http://www.lw54.com/20140206/2112935.html?d

转载于:https://blog.51cto.com/479284883/1401625

基于类的软件复用技术相关推荐

  1. 图像检索:几类基于内容的图像分类技术

    FROM: http://blog.csdn.net/leixiaohua1020/article/details/16847823 一共有四种基于内容的图像分类方法,即颜色.纹理.形状和空间关系. ...

  2. matlab图像类论文,基于matlab图形图像处理技术毕设论文.doc

    基于matlab图形图像处理技术毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域的个别 ...

  3. 探讨增强现实(AR)基于模型的追踪技术

    作者简介: 古鉴,于2015年加入暴风魔镜,负责 AR 类产品及交互技术的研发工作. 方维,主要从事计算机视觉和 AR 相关的跟踪定位研究. 本文为作者投稿,版权归原作者所有,非经作者同意,请勿转载. ...

  4. 基于AI的超分辨技术在RTC领域的技术难点与挑战

    正文字数:8603  阅读时长:12分钟 基于AI的超分辨技术在图像恢复和图像增强等领域的应用前景,受到了学术界的关注,但在RTC领域中很多算法并不能满足实际场景下的应用需求.本次分享我们邀请到了网易 ...

  5. python继承方式是基于原型吗_基于原型与基于类的继承

    小编典典 这里大约有一百个术语问题,大多数是围绕某人(不是您)试图使他们的想法听起来像是"最好的". 所有面向对象的语言都必​​须能够处理以下几个概念: 数据封装以及对数据的关联操 ...

  6. *基于类平衡自我训练的无监督域自适应用于语义分割

    基于类平衡自我训练的无监督域自适应用于语义分割 摘要:最近的深度网络实现了最先进的性能在各种语义分割任务中.尽管有这样的进步,但是这些模型在现实世界中面临挑战,它们存在很大的差别在已标签训练/源文件和 ...

  7. 基于JAVAWeb前端开发技术儿童教育网站计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVAWeb前端开发技术儿童教育网站计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVAWeb前端开发技术儿童教育网站计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: ...

  8. 基于内容的图像检索技术

    转:https://blog.csdn.net/u013087984/article/details/52038980 图像检索:基于内容的图像检索技术 2016年06月05日  图像检索  图像检索 ...

  9. 基于人工智能的图像处理技术:利用Opencv实现

    基于人工智能的图像处理技术 本文档基于电子科技大学软件工程学院的的一门图像处理技术课程要求所撰写,希望后来的学习学妹!!!!不要照抄!!!!! 人工智能概述 人工智能,作为计算机科学的一个重要分支,它 ...

最新文章

  1. 流行于机器学习竞赛的Boosting,这篇文章讲的非常全了
  2. 荣耀20青春版鸿蒙,荣耀20青春版曝光,浴霸三摄+麒麟810+系统亮点满满
  3. 干货|SRC漏洞挖掘经验
  4. Live CD|ISO
  5. 摄像头 保存到外网服务器_直播平台搭建千万不要忽略流媒体服务器的存在
  6. 获取当前系统在线用户的数量
  7. 中国数字故障记录仪行业市场供需与战略研究报告
  8. “5G 时代,手机或被淘汰”
  9. poj 1164城堡问题(DFS)
  10. Linux系统下载(超全镜像下载)
  11. linux数组fortran,[转载]FORTRAN中数组的定义及使用
  12. javascript优缺点
  13. python制作简单动画_如何使用python制作简单的动画?
  14. 【springboot短信收发】
  15. STM32H7 BDMA应用示例
  16. 实现数据开放共享的方法
  17. 微信小程序 新版canvas绘制图片方法
  18. 模型量化(6):Yolov5 QAT量化训练
  19. 2019前端工程师修炼手册.pdf
  20. 新浪微博粉丝爬虫-wap站只能爬取20页-

热门文章

  1. 持续集成部署Jenkins工作笔记0004---Subversion环境要求
  2. web前端工作笔记008---js延迟执行代码
  3. Web前端工作笔记007---h5 canvas_雨滴头像合成_图像合成_合成雨滴头像
  4. FAR,NEAR区别
  5. 杭电2539点球大战
  6. 杭电1863畅通工程
  7. 如何查找完全二叉树最后一层的最右边的结点
  8. PHP window2003服务和2008服务器上传个别文件访问报错
  9. C语言和设计模式(工厂模式)
  10. html5 在新标签页打开,Chrome,Javascript,window。在新标签页中打开