`
king_tt
  • 浏览: 2110293 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux下编写C++实例程序(三)

阅读更多

实例1

Point类的完整程序

知识点:学习复制构造函数,比较它与普通构造函数的区别。普通构造函数是在对象创建时被调用,而复制构造函数是在以下3种情况下都会被调用,分别为:

① 当用类的一个对象去初始化该类的另一个对象时

② 如果函数的形参是类的对象,调用函数时,进行形参和实参结合时

③ 如果函数的返回值是类的对象,函数执行完成返回调用者时。

源程序:

运行结果如下:

注意:在有些编译环境下,上面的运行结果可能不尽相同,因为编译器由时会针对复制构造函数的调用做优化,避免不必要的复制构造函数调用。在windows的vc6.0上的运行结果会在4 和 1之间再加一行 Calling the copy construcor.

实例2

游泳池改造预算,Circle类。

一圆形游泳池如图1所示,现在需要在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为 35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。

问题分析:游泳池及栅栏可以看作是两个同心圆,大圆的周长就是栅栏的长度,圆环的面积就是过道的面积,而环的面积是大、小圆的面积之差。可以定义一个圆类来描述这个问题:圆的半径是私有成员数据,圆类应当具有的功能是计算周长和面积。分别用两个对象来表示栅栏和游泳池,就可以得到过道的面积和栅栏的周长。利用已知的单价,便可以得到整个改建工程的预算。

源程序:

程序执行结果

实例3

使用一个类来描述线段,即线段(Line)类。使用上一实例2的 Point类的对象来表示端点。这个问题可以用类的组合来解决,使Line类包括Point类的两个对象p1和p2,作为其数据成员。Line类具有计算线段长度的功能,在构造函数中实现。

知识点:①组合类构造函数的定义的一般形式为:

类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表),...

{类的初始化}

②如果要为组合类编写复制构造函数,则需要为内嵌成员对象的复制构造函数传递参数。例如,假设C类中包含B类的对象b作为成员,C类的复制构造函数形式如下:

C : : C(C &c1) : b(c1.b) {...}

源代码:

执行结果(根据执行结果好好分析一下程序的执行流程)

分析:主程序在执行时,首先生成两个 Point类的对象,然后构造 Line类的对象line,接着通过复制构造函数建立 Line类的第二个对象 line2,最后输出两点的距离。在整个运行过程中,Point类的复制构造函数被调用了6次,而且都是在 Line类构造函数体运行之前进行的,它们分别是两个对象在 Line构造函数进行函数参数形实结合时,初始化内嵌对象时,以及复制构造line2时被调用的。两点的距离在Line类的构造函数中求得,存放在其私有数据成员len中,只能通过公有成员函数 getLen()来访问。

 

 

 

分享到:
评论

相关推荐

    Linux C++ TCP Socket通信实例

    下面用TCP协议编写一个简单的服务器、客户端,其中服务器端一直监听本机的6666号端口。如果收到连接请求,将接收请求并接收客户端发来的消息;客户端与服务器端建立连接并发送一条消息。

    Linux_FTP服务器实例

    在linux底下开发ftp服务器旨在帮助学员综合运用linux初级编程与linux高级编程所学到的知识。如:守护进程的编写,进程间通讯, 管道,socket编程,文件I/O标准库函数与系统调用,以及文件权限管理等等。

    Linux C++ TCP Socket传输文件或图片实例

    下面用TCP协议编写一个简单的服务器、客户端,其中服务器端一直监听本机的6666号端口。如果收到连接请求,将接收请求并接收客户端发来的消息;客户端与服务器端建立连接。连接建立成功后,读取文件内容(/root/...

    Linux C程序设计大全

    第1篇 Linux下C语言基础 第1章 Linux简介 1.1 GNU简介 1.2 Linux简介 1.2.1 Linux发展史 1.2.2 Linux发行版 1.2.3 Linux内核版本 1.2.4 Linux与UNIX的关系 1.2.5 Linux在服务器方面的发展 1.2.6 Linux在嵌入式系统...

    VS2008下的动态库创建以及应用实例,并通过工具生成在Linux下可运行的makefile

    VS2008下的动态库创建以及应用实例,并通过工具MakeItSo生成在Linux下可运行的makefile.在linux下可直接make。

    Json安装文件及实例程序

    Json是一种轻量级的数据交换格式。它采用完全独立于语言的文本格式,从而使Json成为理想的数据交换语言,且易于人阅读和编写。附件包括linux下的安装和编译环境,以及一个Json实例程序。

    log4cplus 源码(C++编写的开源的日志系统)

    log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工程中会比较专业的,:),本文介绍了log4cplus基本概念,以及如何安装,配置。 ### 简介 ### log4cplus是C++编写的开源的日志系统,前身是java...

    Linux下模拟实现进度条实例详解

    Linux下模拟实现进度条  在Linux系统下模拟进度条,首先需要了解一些简单基础知识:  1、在Linux系统下,\r是回车符,\n是换行符,回车是行不变光标回到该行的起始位置,换行是跳转到下一行,但是光标位置不变; ...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    Qt5.9 c++开发指南.zip

    1. 本书专注介绍Qt C++编程。Qt 的C++类库是Qt的核心,适合于开发跨平台的桌面应用程序,例如在专业应用软件开发方面一般使用Qt C++...本书适合于具有C++语言基础,想要学习Qt C++,并准备用Qt C++编写应用软件的读者。

    系统相关的实例50个

    linux源程序 定时清理Windows的指定的目录程序 定时关机程序 lzsslib 得到一个进程的状态 如是否没有反应 得到经过关联的文件类型图标 MAKEMDI2 得到当前进程的运行命令行信息 MB VIEW 存取注册表的类 NT 性能统计类...

    浅谈Python程序与C++程序的联合使用

    总之,我们使用Python与C++的混合编程能够加快程序热点的运算速度。 首先要提醒大家注意的是,在考虑联合编程之前一定要找到程序运行的热点。简单一点地,使用标准库的profile或者cProfile模块找到最消耗CPU的位置,...

    清华大学Linux操作系统原理与应用

    D.2 Linux上的C/C++编译器和调试器 238 D.2.1 运行gcc/egcs 238 D.2.2 gcc/egcs的主要选项 240 D.2.3 gdb简介 240 D.2.4 gdb的常用命令 241 D.2.5 gdb使用示例 242 D.3 GNU make和makefile 243 D.3.1 GNU make 243 D...

    C++编程你也行(英文版)

    本书是一本优秀的C++教材,内容包括:基础类型、操作符和简单变量,循环和决策,命名空间和C++标准库,用C++编写函数,行为、序列点和求值顺序,泛型函数,用户自定义类型、指针、智能指针、迭代器和动态实例,动态...

    RED HAT LINUX 6大全

    第三部分为系统管理;第四部分为Linux编程;第五部分为附录。本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。...

    基于linux下QT平台完成的简单图书馆管理系统.zip

    Qt是一个用标准C++编写的跨平台开发类库,它对标准C++进行了扩展,引入了元对象系统、信号与槽、属性等特性,使应用程序的开发变得更高效。 Qt类库中大量的类以模块形式分类组织的,包括基本模块和扩展模块等。一个...

    so编写和Python调用.so文件

    里面有详细教程和编程实例,指导你如何如何在liunx下编写.so文编并通过python调用,里面涉及到了c++和python的混合编程,简单易学,适合入门者学习!

    gsoap 2.8 (SOAP/XML 关于C/C++ 语言的自动化实现工具内附 CSharp webservice例子,及GSOAP client和server例子)

     以直接用C/C++开始编写web服务及客户端程序而不需要了解SOAP协议的细节,但是由于我们在本节中使用了大量的实例来说明gSOAP与其他SOAP  实现的连接及通讯,所以了解一些SOAP及WSDL协议也是必需的。  5.1 如何...

    Cocos2dx 源码与实例

    Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本...Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,开发者编写的源代码很容易在桌面操作系统中编辑和调试。

Global site tag (gtag.js) - Google Analytics