深入了解C++封闭类的定义与使用_第1页
深入了解C++封闭类的定义与使用_第2页
深入了解C++封闭类的定义与使用_第3页
深入了解C++封闭类的定义与使用_第4页
深入了解C++封闭类的定义与使用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第深入了解C++封闭类的定义与使用目录封闭类轮胎类引擎类汽车类总代码

封闭类

今天,我学习的是C++对象的一种操作.就是成员对象和封闭类.

那么封闭类是什么呢和普通类用什么不同吗

封闭类就是有成员对象的类,那么成员对象是什么呢我们一起来看一下吧

封闭类分为了轮胎类,引擎类,汽车类......我们可以将封闭类可以看作一个完整的汽车.

那么汽车里面用哪些成员呢,肯定有轮胎对吧,还有引擎,窗户等等,那么轮胎有什么成员呢有外层的橡胶,里面的金属,对吧.轮胎写成一个对象后,这个轮胎呢是汽车的一部分,而汽车也是一个对象,所以轮胎就是一个成员对象,而汽车呢因为包含了其他对象,就叫做封闭类.

接下来,就可以开始写程序了.

我们先写轮胎,轮胎的材质橡胶也可以写成一个对象,包含着橡胶的大小,尺存什么的.而我要给大家做一个最简单的例子,就不用写橡胶,金属什么的了!这个轮胎是一个圆对吧,圆肯定有半径吧,宽度/长度吧,还有高啊,都可以写进去:

轮胎类

#includebits/stdc++.h

usingnamespacestd;

classCTyre{//轮胎类

private:

intredius;//半径

intwidth;//宽度或长度

intheight;//高度

public:

CTyre(){//构造函数

redius=0,width=0,height=0;//赋值

~CTyre(){//析构函数

printf("%d%d%d\n",redius,width,height);//类销毁时输出这3个成员的值

......圆的体积

......圆的表面积

......等等

这个就是我写的其中一个类,轮胎类,里面标注着轮胎的半径,长,高,还有构造函数和祈构函数,中间省略的部分可以写这种东西,这个轮胎的作用等等.

写完了轮胎,还有什么呢自然就是引擎了,引擎类里面需要有什么成员呢首先我们要知道这个引擎是否是好的,还要知道这个引擎是不是开启的,还可以知道这个引擎里面的引擎个数,最后还可以看一下这个引擎的生产公司.

引擎类

#includebits/stdc++.h

usingnamespacestd;

classCEngine{//引擎类

private:

booluse;//是否正在使用

boolgood_bad;//这个引擎是好的还是坏的

intparts;//零件的个数

stringproduction;//生产公司的名称

public:

CEngine(){//构造函数初始化

use=false;

good_bad=true;

parts=10000;//一般汽车引擎就是这么多零件

production="丰田汽车";//目前世界上最大汽车公司

~CEngine(){//析构函数

coutuse""good_bad""parts""productionendl;

......这个引擎是否是好的

......这个引擎现在在使用吗

......等等

除了引擎和轮胎,汽车肯定还要很多其他的重要部分,由于过于复杂,今天我们就只写这两个成员类.

有了引擎和轮胎,就可以有汽车了,汽车里面有什么成员呢首先,就是这个汽车的价格,然后才是是引擎和轮胎等各种成员类,注意一下,如果是一个成员类的话,构造函数用参数,在写成员类的时候是不需要加参数的:

汽车类

#includebits/stdc++.h

usingnamespacestd;

classCCar{//汽车类

private:

intprice;//汽车的价格

CTyretyre;//汽车的轮胎

CEngineengine;//汽车的引擎

public:

CCar(intp){//构造函数

price=p;//赋值

~CCar(){//析构函数

printf("%d\n",price);//只用输出这个价格

}//因为轮胎和引擎类消亡后会自动使用祈构函数

这个CCar就是我们的封闭类了,里面有着引擎和轮胎两个成员对象.

现在我讲一下写封闭类的注意事项:

1.任何生成封闭类的语句,都要让编译器明白,对象中的成员对象,是如何进行初始化的.

2.封闭类对象生成时,先执行所有对象成员的构造函数,然后才执行封闭类自己的构造函数.

3.对象成员的构造函数调用次序和对象成员在类中的说明次序一致.

4.和构造函数正好相反,当封闭类对象消亡时,先执行封闭类的析构函数,然后再执行成员对象的析构函数.调用次序也和构造函数的调用次序相反.

总代码

#includebits/stdc++.h

usingnamespacestd;

classCEngine{//引擎类

private:

booluse;//是否正在使用

boolgood_bad;//这个引擎是好的还是坏的

intparts;//零件的个数

stringproduction;//生产公司的名称

public:

CEngine(){//构造函数初始化

use=false;

good_bad=true;

parts=10000;//一般汽车引擎就是这么多零件

production="丰田汽车";//目前世界上最大汽车公司

~CEngine(){//析构函数

coutuse""good_bad""parts""productionendl;

......这个引擎是否是好的

......这个引擎现在在使用吗

......等等

classCTyre{//轮胎类

private:

intredius;//半径

intwidth;//宽度或长度

intheight;//高度

public:

CTyre(){//构造函数

redius=0,width=0,height=0;//赋值

~CTyre(){//析构函数

printf("%d%d%d\n",redius,width,height);//类销毁时输出这3个成员的值

......圆的体积

......圆的表面积

......等等

classCCar{//汽车类

private:

intprice;//汽车的价格

CTyretyre;//汽车的轮胎

CEngineengine;//汽车的引擎

public:

CCar(in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论