linux c++示例
来源:互联网 发布:windows掌上电脑 编辑:程序博客网 时间:2024/05/24 04:44
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()来访问。
- unix/linux c 正则表达式 示例表
- linux 捕捉Ctrl+C示例
- linux下C连接mysql示例
- Linux C中的basename函数用法示例
- Linux C代码实现读取配置文件示例
- c示例
- linux offsetof在用户态C语言实现及示例
- linux c/c++ 段错误(Segmentation fault 查找示例2)
- linux平台下C语言调用python代码示例
- linux中c/c++连接mysql示例程序
- linux中c/c++连接mysql示例程序
- linux C语言Socket编程实现原理及简单示例
- Linux线程池(C语言)及简单实现示例
- Linux GNU C结构体数组初始化示例
- 【Linux C代码分享一】UDP Socket示例程序
- linux示例
- URL ReWriting 示例(C#)
- C程序设计 示例程序
- nginx tcp proxy 连接保持设置
- 关于HFM和HBB
- 火车票软件分享
- EXCEL里怎样拆分单元格
- 【分享】153个国家的信息数据集(Information data set in 153 countries)
- linux c++示例
- vs2012安装 error occurred
- 改善C++ 程序的150个建议学习之建议2:避免那些由运算符引发的混乱
- FTP命令详解
- uva10012
- ASP.NET生成压缩文件(rar打包)
- 当session长时间不登录失效问题,再重登录出现两个嵌套登录页面
- JVM知识(三)---类的执行机制(上)
- CRM利用ObjectCacheManager清除当前XrmServiceContext缓存