c期末复习资料.docx
《c期末复习资料.docx》由会员分享,可在线阅读,更多相关《c期末复习资料.docx(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1、 面对对象相关概念:类:具有一样属性与行为的对象集合,把数据与操作封装在一起对象:数据+操作。面对对象特征:抽象,封装,继承,多态2、输入输出:输入cinab;输入不能有endl。 输出coutabendl;3、const修饰符:l 指向常量的指针:如const char *p=abcd;不允许变更指针所指的常量,如p3=x是错误的,但是可以变更指针p的值p=“mn;是对的。l 常指针:char *const p =“abcd;指针本身是常量,不能挪动,但是所指内容为变量,可以更改,如p3=x是对的。l 常数据成员,常成员函数,常对象:在类中声明的数据或函数可以是常量,对于常数据成员要用初
2、始化列表初始值,在C+类中,const关键字可以修饰对象与成员函数,const对象不能被修改,一个常对象只能调用它的常成员函数,不能调用一般成员函数。 常成员函数格式:类型说明符 函数名参数表const;常成员函数可以参与重载。常成员函数不能更新对象的数据成员,也不能调用该类中的一般成员函数,const成员函数不能修改数据成员。 4、内联函数:在函数说明前冠以关键字inline,目的是消退函数调用时的系统开销,进步运行速度。留意:内联函数体内不能有循环语句与switch语句。内联函数的声明必需出如今内联函数第一次被调用之前。类构造中全部在类说明体内定义的函数都是内联函数。5、带有缺省参数值的函
3、数:在说明函数原型时,可以给一个或多个形参指定缺省值,调用时如给出实参,那么承受实参值,否那么承受预先给出的默认形参值。如某一个类point的构造函数原型为point(int x=1, int y=0);那么参数x与y的缺省值为1与0.留意:在函数原型中,全部缺省值的参数都必需从右往左缺省,在函数调用时从左往右将实参与形参结合,如point(int x=1, int y=0) X=x;Y=y;,那么执行point p(3)之后p的X与Y值分别为3,0.6、函数重载:C+允许功能相近的函数在一样的作用域内以一样函数名声明,从而形成重载。留意:重载函数的形参必需不同: 个数不同或类型不同。编译程序
4、将依据实参与形参的类型及个数的最正确匹配来选择调用哪一个函数。例:void add(int m, int n) couttwo integer numbers m+n=m+nendl; void add(float x,float y) couttwo float numbers m+n= m+n成员名“方式访问 public 属性的成员11、构造函数构造函数的作用是在对象被创立时运用特定的值构造对象,或者说将对象初始化为一个特定的状态。特点:l 在对象创立时或new类名时由系统自动调用。l 假设程序中未声明,那么系统自动产生出一个默认形式的构造函数,只有程序中定义有构造函数,系统不再自动生成
5、缺省的构造函数缺省构造函数 类名:缺省构造函数名l 函数名必需与类名一样l 不能指定函数返回类型l 参数可以有,也可以无,参数可以带默认形参值,所以一个类可以有多个构造函数,从而构造函数可以重载。如有一个类A,当执行语句A a;时将自动调用该类的无参构造函数或缺省的构造函数或带默认形参值的构造函数,但无参构造函数与带默认形参值的构造函数二者同时出现简洁出现调用时引起二义性l 允许是内联函数利用构造函数创立对象有两种方法:l 用构造函数之间创立对象:类名 对象名(实参表);如point p1,2;l 利用构造函数创立对象时,通过指针与new来实现:类名 *指针变量=new 类名(实参表);如A
6、*p=new A(1,2);留意类A声明对象指针并不调用构造函数,而是通过new创立临时对象调用构造函数,所以该语句只调用构造函数1次12、拷贝构造函数拷贝构造函数是一种特别的构造函数,其形参为本类的对象引用,作用是用已经存在的对象初始化另一个同类的新对象。类名类名 &对象名;/拷贝构造函数 如类A拷贝构造函数为: A (A &x);拷贝构造函数特点:l 也是构造函数,所以其函数名与类名一样,没有返回值l 只有一个参数,并且是本类的对象引用,所以一个类只能有一个,不能重载l 每一个类都有一个拷贝构造函数,假设没有定义,系统会自动生成一个缺省的调用拷贝构造函数3种状况:l 当用类的一个对象去初始
7、化该类的另一个对象时系统自动调用拷贝构造函数实现拷贝赋值。l 假设函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。l 当函数的返回值是类对象时,系统自动调用拷贝构造函数。深拷贝与浅拷贝:缺省的拷贝构造函数所实现的数据成员逐一赋值就是浅拷贝,当类中有指针时,须要自定义拷贝构造函数,谓深拷贝。13、析构函数完成对象被删除前的一些清理工作。特点:l 析构函数与构造函数名一样,但它前面必需加一个波浪号l 析构函数没有返回值l 析构函数没有参数,所以一个类中只能有一个析构函数,所以析构函数不能重载l 当撤销对象时,或delete对象指针编译系统自动调用析构函数l 假设没有定义析
8、构函数,系统自动生成一个缺省的析构函数类名:缺省析构函数名14、成员初始化列表在声明类时,不能在数据成员的声明中对数据成员进展初始化,一般在构造函数中用赋值语句进展,但对于内嵌的对象、常量、引用数据成员须要在构造函数的成员初始化列表中进展。带有成员初始化列表的构造函数一般格式:类名:构造函数名参数表:成员初始化列表。15、this指针隐含于每一个类的成员函数中的特别指针。16、对象数组:类名 数组名下标值;该数组中每个元素都是对象,都会自动调用构造函数,当数组中每一个对象被删除时,系统都要调用一次析构函数。访问方法:数组名下标.成员名17、对象指针:类名 *对象指针名;定义对象指针不会调用构造
9、函数利用对象指针可以访问单个对象成员,如point *p,ob;p=&ob;p-show();或(*p).show();也可以用对象指针访问对象数组,对象可以作为函数参数,对象指针也可以18、指向类成员的指针:通过指向成员的指针只能访问公有成员指向类的非静态成员的指针l 指向公有数据成员的指针:类型说明符 类名:*数据成员指针名;说明指针应当指向哪个成员:指针名=&类名:数据成员名;通过对象名或对象指针与成员指针结合来访问数据成员: 对象名.* 类成员指针名 或: 对象指针名-*类成员指针名l 声明指向公有函数成员的指针:类型说明符 (类名:*指针名)(参数表);初始化:指针名=类名:函数成员
10、名;通过对象名或对象指针与成员指针结合来访问函数成员:(对象名.* 类成员指针名)(参数表)或:(对象指针名-*类成员指针名)(参数表)指向类的静态成员的指针l 对类的静态成员的访问不依靠于对象,可以用一般的指针来指向与访问静态成员19、静态成员l 静态数据成员l 用关键字static声明,该类的全部对象维护该成员的同一个拷贝,必需在类外定义与初始化,用(:)来指明所属的类。初始化格式:数据类型 类名:静态数据成员名=值;静态数据属于整个类,因此既可以通过某个对象,或对象指针去访问,也可以运用类名:静态数据成员名格式去访问它。l 静态成员函数 n 一般来说,静态成员函数只能引用属于该类的静态数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末 复习资料
限制150内