




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式下程序设计类与对象(上)基础构造函数析构函数嵌入式嵌入式Linux下下QT程序设计程序设计主讲:成宝宗嵌入式下程序设计类与对象(上)基础构造函数析构函数类与对象嵌入式下程序设计类与对象(上)基础构造函数析构函数主要内容:类与对象的基本概念构造函数拷贝构造函数析构函数嵌入式下程序设计类与对象(上)基础构造函数析构函数4c+中的类类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。利用类可以实现数据的封装、隐藏、继承与派生。利用类易于编写大型复杂程序,其模块化程度比C中采用函数更高。嵌入式下程序设计类与对象(上)基础构造函数析
2、构函数5类的声明形式 类是一种用户自定义类型,声明形式:class 类名称 public: 公有成员(外部接口) private: 私有成员 protected: 保护型成员嵌入式下程序设计类与对象(上)基础构造函数析构函数访问权限公有类型成员在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。私有类型成员在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。保护类型与private类似,其差别表现在继承与派生时对派生类的影响不同。嵌入式下程序设计类与对
3、象(上)基础构造函数析构函数类的成员成员数据与一般的变量声明相同,但需要将它放在类的声明体中。成员函数在类中说明原型,可以在类外给出函数体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形成内联成员函数。允许声明重载函数和带默认形参值的函数嵌入式下程序设计类与对象(上)基础构造函数析构函数8类的成员class clock public: void setTime(int newH, int newM, int newS); void showTime(); private: int hour, hinute, second;成员数据成员函数嵌入式下程序设计类与对象(上)基础构造
4、函数析构函数成员函数的实现void Clock:setTime(int newH, int newM,int newS) hour = newH; minute = newM; second = newS;void Clock:showTime() cout hour : minute : second;9嵌入式下程序设计类与对象(上)基础构造函数析构函数10对象类的对象是该类的某一特定实体,即类类型的变量。声明形式: 类名 对象名;例: Clock myClock;嵌入式下程序设计类与对象(上)基础构造函数析构函数11类中成员的访问方式类中成员互访直接使用成员名类外访问使用“对象名.成员名”
5、方式访问 public 属性的成员嵌入式下程序设计类与对象(上)基础构造函数析构函数12类的应用举例#includeusing namespace std;class Clock ./类的声明略/.类的实现略int main() Clock myClock;myClock.setTime(8, 30, 30);myClock.showTime();return 0;嵌入式下程序设计类与对象(上)基础构造函数析构函数13构造函数构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。在对象创建时由系统自动调用。如果程序中未声明,则系统自动产生出一个隐含的参数列表为
6、空的构造函数允许为内联函数、重载函数、带默认形参值的函数嵌入式下程序设计类与对象(上)基础构造函数析构函数14构造函数举例class Clock public:Clock(int newH,int newM,int newS);/构造函数声明void setTime(int newH, int newM, int newS);/成员函数void showTime();/成员函数private:int hour, minute, second;构造函数的实现:Clock:Clock(int newH, int newM, int newS) hour = newH;minute = newM;s
7、econd = newS;【构造函数的实现: 在函数名与函数体之间添加初始化列表:成员(初始化值)或者使用默认参数!Clock:Clock(int newH, int newM, int newS=0):hour(newH),minute(newM),second(newS)】建立对象时构造函数的作用:int main() Clock c(0,0,0); /隐含调用构造函数,将初始值作为实参。 c.showTime();return 0;嵌入式下程序设计类与对象(上)基础构造函数析构函数15拷贝构造函数拷贝构造函数是重载构造函数的一种重要形式,它的功能是使用一个已经存在的对象去初始化一个新创建
8、的同类的对象,它可以将一个已有对象的数据成员的值拷贝给正在创建的另一个同类的对象。 class 类名 public : 类名(形参);/构造函数 类名(类名 &对象名);/拷贝构造函数 .;类名:类(类名 &对象名)/拷贝构造函数的实现 函数体 嵌入式下程序设计类与对象(上)基础构造函数析构函数16拷贝构造函数举例class Clock public:Clock(int newH,int newM,int newS);/构造函数声明Clock(Clock &p);/拷贝构造函数声明void setTime(int newH, int newM, int newS);/成
9、员函数void showTime();/成员函数private:int hour, minute, second;拷贝构造函数的实现:Clock:Clock(Clock &p) hour = p.hour;minute = p.minute;second = p.second;使用已有的对象,初始化另一个对象:int main() Clock c(21,59,23); Clock b = c; b.showTime();return 0;嵌入式下程序设计类与对象(上)基础构造函数析构函数拷贝构造函数调用 拷贝构造函数在三种情况下会被调用: 用类的一个对象去初始化该类的另一个对象时。 函
10、数的形参是类的对象,调用函数进行形参和实参的结合时。 函数的返回值是类的对象,函数执行完返回调用者时。嵌入式下程序设计类与对象(上)基础构造函数析构函数18隐含的拷贝构造函数如果程序员没有为类声明拷贝初始化构造函数,则编译器自己生成一个隐含的拷贝构造函数。每一个类都必须有一个拷贝构造函数,但不是都必须要自己定义。如果我们在类中没有定义,则系统会自动帮我们定义一个默认的拷贝构造函数,该函数自动完成将一个对象的所有数据成员复制到另一个对象中的所有操作。嵌入式下程序设计类与对象(上)基础构造函数析构函数析构函数 与构造函数类似的,析构函数也是一种特殊的成员函数,也被声明为公有成员。不同的是,析构函数
11、作用是释放分配给对象的内存空间,并做一些善后工作。析构函数在声明定义和使用的时候需要注意如下的事项:析构函数的名字必须与类名相同,但在名字的前面要加波折号“”。析构函数没有参数,没有返回值,不能重载,在一个类中只能有一个析构函数。当撤销对象时,系统会自动调用析构函数完成空间的释放和善后工作。嵌入式下程序设计类与对象(上)基础构造函数析构函数20析构函数完成对象被删除前的一些清理工作。在对象的生存期结束的时刻系统自动调用它,然后再释放此对象所属的空间。在使用delete运算符释放它时,也会自动调用其析构函数。如果程序中未声明析构函数,编译器将自动产生一个隐含的析构函数。嵌入式下程序设计类与对象(上)基础构造函数析构函数21构造函数和析构函数举例#include using namespace std;class Clock public:Clock(int newH,int newM,int newS);/构造函数声明Clock(Clock &p);/拷贝构造函数声明 Clo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 稀土国际贸易与政策法规考核试卷
- 疾病预防控制中的社会经济学影响考核试卷
- 租赁经营合同(9篇)
- 游苏州园林心得体会600字(15篇)
- 糕点行业生产安全规范与事故预防考核试卷
- 2025年设计个人年终工作总结(4篇)
- 世界文化遗产解读考核试卷
- 石油开采业的区域发展与资源整合方法考核试卷
- 网络公共服务平台风险防控考核试卷
- 招标代理练习试题附答案(一)
- DB11-T 212-2024 园林绿化工程施工及验收规范
- 托盘贸易合作合同范例
- 劳动节安全教育家长会
- 品类运营管理
- 用工单位与劳务派遣公司合同
- 我的家乡浙江衢州
- 国家开放大学国开电大《儿童心理学》形考任务+大作业答案
- 股骨下端骨折的临床特征
- 学前儿童卫生与保健-期末大作业:案例分析-国开-参考资料
- 学校食堂蔬菜配送合同范本
- 建筑物外墙广告牌拆除方案
评论
0/150
提交评论