- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章C面向对象的程序设计方法研讨
Linux 系统C语言程序设计;;主要内容;面向过程和面向对象编程概述;面向对象程序设计的基本思想是现实世界由各种对象组成;
面向对象程序设计的基石是:类和对象。
类是具有相同属性结构和操作行为的一组对象共性的抽象;对象是描述客观事物的属性结构及定义在该结构上的一组操作的结合体。在此,程序被描述为:
程序 =(对象 + 对象 + …)
对象 =(数据结构 + 算法)
对象之间通过消息和方法机制完成相应的操作。;以对象为基础的程序设计可以保障数据的安全性;
类的继承使代码重用成为可能;
类对数据结构和算法的绑定使得程序便于修改和调试,便于程序的维护和扩充;
面向对象的程序本质上是事件驱动的;
对象是数据和操作代码的完整结合体。各个对象通过消息传递而相互作用。
;面向对象程序设计语言有以下四个特征:
抽象性 ---- 许多实体的共性产生类;
封装性 ---- 类将数据和操作封装为用户自定义的抽象数据类型;
继承性 ---- 类能被复用,具有继承(派生)机制;
多态性 ---- 具有动态联编机制。;面向过程以算法为中心,由算法完成对数据的操作;
面向对象技术是以属性为中心,以消息和方法机制完成对对象的操作,对象作为数据而不是作为过程被描述。; C++语言全面兼容C,除了具备C语言的特点外,还具有以下特点:
⑴全面兼容C语言,全面支持面向过程的结构化程序设计;
⑵全面支持面向对象程序设计
以对象为基本模块,使程序模块的划分更合理,模块的独立性更强,程序的可读性、可理解性、可重用性、可扩充性、可测试性和可维护性等更好,程序结构更加合理。
⑶全面支持面向过程和面向对象的混合编程,充分发挥两类编程技术的优势。 ; ; ; ; ; ; ; ; ; ; ;一个类可以有多个构造函数,和普通函数一样,同名的构造函数相互重载
Class d_String {
Public:
d_String();
d_String(const d_String *);
d_String(const char *);
……
};
对象的初始化
d_String str1; // 调用缺省构造函数
d_String str1(); // 调用缺省构造函数
d_String str1(“Bing Wang”); // 调用构造函数
d_String str1=d_String(); // 调用缺省构造函数
d_String str1=d_String(“Bing Wang”); // 调用构造函数;完成对象被删除前的一些清理工作;
在对象的生存期结束的时刻系统自动调用它,然后再释放此对象所属的空间;
如果程序中未定义析构函数,编译器将自动产生一个缺省的析构函数;
与构造函数一样,析构函数一般总是被说明为类的一个公有函数成员,由~加上函数名称构成,没有返回值,且没有任何参数;
当一个对象中没有涉及动态内存分配时,可以使用系统生成的缺省析构函数。如果涉及到动态内存问题时,应该编写自己的显式析构函数;否则存在内存泄漏问题
当然也可能存在需要处理的情况:在对象的生命周期内动态获得的各种资源,在析构函数中应该需要处理;例如该对象获得的互斥锁,在析构函数中应该释放该锁。;本课结束
文档评论(0)