面向对象的编程技术复习大纲.doc_第1页
面向对象的编程技术复习大纲.doc_第2页
面向对象的编程技术复习大纲.doc_第3页
面向对象的编程技术复习大纲.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象的编程技术复习大纲1、内联函数的概念及语法形式内联函数是功能比较简单的函数,结构简单、语句少,不包含循环语句,频繁被调用,不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处,这样就节省了参数传递、控制转移等开销。语法形式:inline 类型说明符 函数名(形参表)函数体2、类与对象的定义及使用(注意编程题)(1) 类的成员属性的含义class 类名称 public: 公有成员(外部接口) private: 私有成员 protected: 保护型成员(2) 如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。(3) 类的对象是该类的某一特定实体,即类类型的变量。(4) 使用“对象名. 成员名”方式访问 public 属性的成员3、函数重载的含义及用法(1) C+允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。(2) 重载函数的形参必须不同: 个数不同或类型不同。4、构造函数的特征:(1) 构造函数的函数名与类名相同 (2) 构造函数可以重载(3) 构造函数可以设置默认参数 (4) 构造函数在对象被创建的时候将被自动调用(5) 默认形式的构造函数-没有形参,不能定义两个以上的默认形式构造函数(6) 构造函数不能被派生类继承(7) 构造函数可以重载,析构函数不能重载(8) 析构函数:在对象的生存期结束的时刻系统自动调用它,然后再释放此对象所属的空间。如果程序中未声明析构函数,编译器将自动产生一个不做任何事情的默认的析构函数。5、拷贝构造函数的特征:(1) 具备一般构造函数的所有特性 (2) 其形参是本类的对象的引用,其作用是使用一个已存在的对象(由拷贝构造函数的参数指定),去初始化同类的一个新对象(3) 默认的拷贝构造函数的功能:把初始值对象的每个数据成员的值复制到新建立的对象中(4) 定义形式:类名(类名 &对象名) (5) 拷贝构造函数在以下三种情况下会被调用: A当用类的一个对象去初始化该类的另一个对象时; B如果函数的形参是类的对象,调用函数时,进行形参和实参结合时; C如果函数的返回值是类的对象,函数执行完成返回调用时。(参考例题:4-2)6、友元的概念(1) 友元函数:在类中使用关键字friend 修饰的非成员函数,在它的函数体中可以通过对象名访问类的私有和保护成员(参考例题:5-6);(2) 友元类:如果类A被说明成类B的友元,则A类的所有成员函数都是B类的友元函数,都可以访问B类的私有和保护成员。7、类的静态成员(static修饰)(重点,注意编程题)(1) 静态数据成员:该成员为整个类所共有,不属于任何一个具体对象,在每个类只有一个拷贝,由该类的所有对象共同维护和使用,从而实现了同一个类的不同对象之间的数据共享;静态数据成员具有静态生存期,只能通过类名对它进行访问,一般的用法是“类名:标识符”,其初始化一般在类外使进行。(参考例题:5-4);(2) 静态函数成员:该成员为整个类所共有,由该类的所有对象共同维护和使用,对于公有的静态函数成员,可以通过类名或对象名来调用。而非静态函数成员只能通过对象名来调用。静态函数成员可以直接访问该类的静态数据和函数成员,而访问非静态数据成员必须通过参数传递方式得到对象名,然后通过对象名来访问(参考例题:5-5)。另外,静态函数成员没有this 指针。8、引用的表示及含义(参考例题:3-12)引用是一种特殊类型的变量,可以被认为是另一个变量的别名。 int i,j;int &ri=i; /建立一个int型的引用ri,并将其初始化为变量i的一个别名j=10;ri=j;/相当于i=j;9、指针的概念及用法(1) 普通指针的定义 int i,*p=&i;(2) 和数组的结合 char s=12345,*str; str=s;(3) 和const 的结合 const char *name1=John; /name1 是指向常量的指针,不能通过指针来改变所指对象的值,但指针本身可以改变,即可以指向另外的对象char *const name2=John; /name2 是一个常指针,这时指针本身的值不能被改变,即不能再指向其它对象。(4) 和对象的结合(参考例题:6-12)(5) 和类的数据成员和函数成员结合 (参考例题:6-14,6-15)10、运算符重载(重点,注意编程题) (参考例题:8-1,8-2)(1) 不能重载C+运算符在有:类属关系运算符“.”,成员指针运算“.*”,作用域分辨符“:”,sizeof运算符和三目运算符“?:”(2) 运算符重载的两种形式A、类的成员函数形式函数类型 operator 运算符(形参表)函数体B、类的友元函数形式friend 函数类型 operator 运算符(形参表)函数体11、共享数据的保护(1)常引用:所引用对象不能被更新 定义形式:const 类型说明符 &引用(2)常对象:必须进行初始化,而且不能被更新定义形式:类名 const 对象名; (3)常成员函数:不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数;常对象只能调用它的常成员函数,而不能调用其他成员函数;const 关键字可以用于对重载函数的区分定义形式:类型说明符 函数(参数表) const12、虚基类(1) 设置虚基类的目的是消除二义性,使得从不同的路径继承过来的同名数据成员在内存中只有一个拷贝,同一个函数名也只有一个映射;(2) 定义形式:class 派生类名:virtual 继承方式 基类名(参考例题:7-8)(3) 只有最远派生类的构造函数会调用虚基类的构造函数,该派生类的其它基类对虚基类构造函数的调用都自动被忽略。(参考例题:P234)13、虚函数(1) 虚函数是实现动态绑定的基础,必须是非静态的成员函数;(2) 声明形式:virtual 函数类型 函数名(形参表)函数体(3) 只能出现在类声明中的函数原型声明中,而不能在成员函数实现的时候(4) 一般由成员函数来调用或者通过指针、引用来访问虚函数(参考例题:8-4)(5) 一个抽象类的派生类可以实例化的必要条件是实现了所有的纯虚函数,声明为纯虚函数后,基类中就不再给出函数的实现部分。纯虚函数声明形式:virtual 函数类型 函数名(形参表)=0;14、动态内存分配(new 运算 和 delete 运算) (参考例题:6-16)(1) new 类型名T(初值列表)例:int *p; p=new int(5); int *q=new int10Point *Ptr1=new Point;Point *Ptr2=new Point(1,2);(2) delete 指针名例:delete p;delete Ptr1;delete Ptr2;15、多继承时派生类构造函数执行的次序:(参考例题:7 -5)(1) 调用基类构造函数,调用顺序按照它们被继承时声明的顺序(从左到右);(2) 调用内嵌成员对象的构造函数,调用顺序按照它们在类中声明的顺序;(3) 派生类的构造函数体中的内容。16、何为类型兼容规则(赋值兼容规则)?它可以运用在那些情形中?所谓赋值兼容规则是指在公有派生情况下,一个派生类的对象可以作为基类的对象来使用的地方。赋值兼容规则指的是下面三种情况:(1) 派生的对象可以赋给基类的对象。(2) 派生类的对象可以初始化基类的引用。(3) 派生类的对象的地址可以赋给指向基类的指针。17、类的成员属性及继承方式的含义: 访问属性 继承方式publicprotectedprivatepublic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论