- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中南大学-电信15-C课程学习知识个人难点总结(七、八)
中南大学 面向对象编程(C++) 课程学习报告《七、八》学生姓名 春天的熊 学生学号 授课教师 _ 学 院 _________信息科学与工程学院__________专业班级 _________电子信息工程15班 _二○一六年 八 月类和对象的特性注意:在C++面向对象的知识点中,在面向对象的程序中,除主函数外,其他函数基本上都是出现在“类”中的,只有通过类才能调用类中的函数,程序的基本构成单位是类,程序面对的是一个个类和对象,程序设计主要工作是设计类、定义和使用类对象。面向对象的程序设计有4个特点:抽象、封装、继承和多态性;在C++中,用struct声明的类,如果没有对其成员做显示声明,则默认为public,而用class定义的类,默认为private;在C++中,如果类成员函数不包括循环等控制结构,系统会自动将函数作为内置函数来处理,C++对一般内置函数要求用关键字inline声明,但是对类定义成员函数,可以省略inline,即该函数默认为内置函数(如果不包含循环等控制语句);如果是类外定义成员函数,则要求该函数必须加上inline关键字(要求声明为内置函数)因为类定义时候,内存并不会给类分配存储空间,但是当类定义对象的时候,内存就会分配空间给对象,对象是由数据和函数组成,由同一个类定义不同的对象时,对象的数据存储的空间是不同的,但是函数是存储在一个公共空间(该空间不算是对象的存储空间);C++中,对函数声明时对形参进行初始默认值后,如果函数定义时对形参进行不同声明时默认值的初始化,则编译器会默认为声明为准,自动忽略函数定义的默认值;在C++中,主函数main函数中要做的事:定义对象;向对象发出“消息”,通知个对象完成有关任务;即调用有关对象的成员函数,去完成相应的操作;怎样使用类和对象注意:一般情况下,先构造的对象后进行析构,而后构造的对象却先进行析构函数;但是在特殊情况下,比如收到定义对象的作用域影响,可能结论不一定会适用;对象数组的意思是建立一个数组,只不过是每个数组中元素都是一个同类类型的对象;定义格式一般如下:类名 数组名[对象元素个数];如果要初始化,即 类名 数组名[对象元素个数]={实参},如果有n个实参会自动给n个对象的第一个形参赋值;指向对象的指针,格式如下:类名 * 对象指针名;对象的指针就是对象空间的起始地址;即将对象的地址赋给对象的指针;指向对象成员的指针,即指针存放对象成员的地址;格式如下:数据类型名 *指针变量名或(数据类型名 *指针变量名=对象的数据成员名);指向对象成员函数的指针,其格式不是和指向普通函数指针一样,指向普通函数的指针:函数类型名 (*指针变量名)(参数列表);而指向对象成员函数的指针,其格式:函数数据类型名(类名:: *指针变量名)(参数表列),要想指针指向函数,即指针变量名=类名::函数名;this指针,表示的是指向本类中对象的指针,而且还是存储当前被调用函数的所属对象的起始地址;常对象的作用就是定义一个对象,并且就在定义的同时对对象数据成员进行初始化,并且该对象的数据成员的值不可以在改变;其格式如下:const 类名 对象名[(实参表)];因此,通过常对象只能调用常函数,因为如果可以调用普通函数,可能就会在调用普通函数对对象的数据成员进行修改,但是如果是调用常函数,则无所谓,因为它的作用就是可以引用对象的数据成员,但是不可以修改对象的数据成员;(但是如果必须要修改某个数据可以将该变量定义为mutable 关键字+数据类型+变量名),就可以通过常函数改变需要修改值的数据成员;对于常数据成员,只可以通过构造函数的参数初始化表对常数据成员进行初始化,其他函数都无法实行初始化;常成员函数定义格式:类型名 函数名(参数表)const,常对象的数据成员都是常数据成员,但是函数函数成员不一定,还有常成员函数不可以调用另一个非const函数成员;指向对象的常指针,即类名* const 指针变量名;对象的赋值,即就是通过对运算符=重载的函数,将一个对象的数据成员赋值给另一个对象,因为成员函数存储空间不属于对象,所以对象赋值就是针对对象的数据成员;对象的复制,其格式如下:类名 对象2(对象1),即就是按照对象1的形式建立一个新的对象2;或者 类名 对象2=对象1;对象的赋值和对象的复制区别在于:对象的复制,事先要建立一个对象,然后在赋值;而对象的复制,则是从无到有建立一个对象,并使新对象和一个已经存在的对象的结构和数据完全一样;静态数据成员,其作用就是将各个对象的共有的数据成员的值确定为一样,且存储在统一内存空间,即通过某个对象改变其值,导致其他的对象的相同数据成员的值也改变;静态数据成员可以在类外进行初始化,其一般格式为:数据类型 类名 ::静态数据成员名=
文档评论(0)