- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++面向对象程序设计
第一章:c++的初步知识
C语言和c++的区别?
C语言是结构化和模块化的语言,它是面向过程的。在处理较小规模的程序时,使用c语言极为方便。但是当问题规模较复杂时,c语言便显得较为吃力。
C++保留了c语言的所有优点,并增加了面向对象机制,具有类、封装、继承、多态等特性,在开发较大规模程序时可以明显提高软件开发效率。
#define与const
在c语言中常用#define指令在定义符号常量,这样定义是在预编译时进行字符置换,在预编译后,程序不再有PI这个标识符。PI不是变量,没有类型,不占用存储单元,且容易出错。
C++中提供const定义常变量,它具有变量的属性,有数据类型,占用存储单元,有地址,可用指针指向它,只是在程序运行时变量值不变,且不能改变。
什么是函数模板?
建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代替,这个通用函数就称为函数模板。
声明:templatetypename T
什么是“引用”?
引用又称别名,引用的作用是为一个变量再起另一个名字,以便在需要时可以间接引用该变量。对一个变量的“引用”的所有操作,实际上都是对其原来的变量的操作。在声明引用时,必须对其初始化。
注:引用不是独立的变量,不单独分配存储单元。
值传递和引用传递的区别?
值传递将实参的值传递给形参,形参是实参的一个拷贝;
引用传递是将实参的地址传给引用型形参,这时形参和实参是同一个变量
什么是内置函数?
调用函数需要一定的时间,如果有些函数需要频繁使用,则累计所用时间会很长,从而降低程序的执行效率。C++中可以通过在函数左端添加关键字inline,使程序在编译时将所调用的函数代码直接嵌入到主调函数中,从而减少运行时间,提高运行速度,这便是内置函数。
new/delete和malloc/free
在软件开发中,常常需要动态分配和撤销内存空间。
c语言中使用malloc/free,在使用malloc函数时必须指定需要开辟的内存空间的大小,(格式:malloc(size)),此外malloc函数只能从用户处知道应开辟空间的大小而不知道数据的类型,因此无法使其返回的指针指向具体的数据。
C++中使用new/delete,(格式:new 类型[初值]),使动态分配空间更加方便。
第二章:类和对象的特性
对象:客观世界的实体。每个对象均由数据和函数组成,数据即属性,函数用来对数据进行操作,以便实现某些功能。
封装:①将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象间相互独立,互不干扰。②将对象中某些部分对外隐蔽,只留下少数接口,方便与外界联系,接收外界消息。
抽象:将有关事物的共性归纳、集中的过程,表示同一类事物的本质。(类是对象的抽象,对象是类的实例)
继承:
多态:由继承而产生的派生类,其对象会对同一消息不同的反应。
面向对象设计和面向过程设计的区别?
面向过程设计的围绕功能进行的,一个函数实现一个功能,所有数据都是公用的,程序设计者必须考虑每一个细节,即什么时候对什么数据进行操作。(组成:程序=算法+数据结构)
面向对象设计是围绕对象进行的,将数据和有关操作封装成一个个对象,程序设计者只需考虑如何设计类和对象以及怎样向有关对象发送消息即可。(组成:程序=对象1+对象2+…+消息)
类和对象的关系
类是对象的抽象,而对象是类的具体实例。(类/对象 相当于 结构体类型/结构体变量)
类是抽象的,不占用内存;对象是具体的,占用存储空间。
C++中类和结构体的异同
C++语言在编写时为了兼容c,对结构体的功能进行了扩展,使结构体类型也具有封装的特点,用struct声明的结构体类型实际上也是类。
区别:
(关键)用struct声明的类,如果对其成员不做私有和公有的声明,则默认为公有;而用class定义的类,如果对其成员不做公有和私有的声明,则默认为私有。
结构体的执行效率要比类高。
结构体没有析构函数,类有析构函数。
结构体不能继承,类可以继承
成员函数的存储方式?
一个对象所占的空间大小只取决于该对象数据成员所占的空间,而与成员函数无关。函数的目标代码存储在对象空间之外,供不同的对象调用。
(c++设立了this指针用来指向不同的对象)
第三章:怎样使用类和对象
1. 构造函数的作用?
构造函数用来处理对象的初始化,不需要用户来调用它,而是在建立对象时自动执行,且只能执行一次。
构造函数的名字必须与类名同名,不能任意命名。它不具有如何类型,不返回任何值。
一个类中可以定义多个构造函数,以便为对象提供不同的初始化方法,这些构造函数具有相同的名字,而参数个数或类型不同。(重载)
析构函数的作用?
析构函数的作用是在撤销对象占用的内存前完成一些清理工作,使这部分内存可以被分配给新对象使用。
原创力文档


文档评论(0)