




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+面向对象部分考试复习提纲可能做的比较赶,错误或不当之处在所难免,恳请大家批评指正,以便今后修正。=武=1. 面向对象的三大特点:封装、继承、多态一、类1. class A 数据、数据操作封装在一起访问属性 构造函数: 类名() 析构函数:类名()(有3种:private【私有】;public【公有】;protected【保护】)缺省构造函数(即:没有参数的构造函数)拷贝构造函数 A(A&A)补充:inline f(); 函数名前面加上inline,可以令函数变为内联函数。一般只有在函数成员的代码比较少的情况下才把函数设置为内联函数。友元 friend f()静态数据成员: 构造函数:完成对象的初始化。函数名与类名相同,无返回值。可以重载。拷贝构造函数:用已知对象去初始化一个新的对象。静态数据成员:是属于类的。Lgw:在缺省条件下类中成员访问修饰符是private【私有】。: 友元函数的使用:class A . friend void fun(.); /说明函数fun( )是类A的友元函数 . ;void fun(.) class A a; /于是在此函数中, . /可以直接访问类A的私有成员静态数据成员的使用:class Sampleprivate:int a, b, c ; static int d ; / 定义静态数据成员 s1, s2, s3;int Sample:sum = 0; /静态数据成员的初始化必需在类体外进行关于友元函数的几点说明:友元函数不是类的成员函数。因此,对友元函数指定访问权限无效,可以把友元函数的说明放在 private、public、protected 的任意段中。使用友元函数的目的是提高程序的运行效率。慎用友元函数,因为它可在类外直接访问类的私有或保护成员,破坏了类的信息隐藏的特性。二、继承与派生父(基类)子(派生类)派生类定义Class B:public A;单继承 多继承A A BB C C重点:构造函数 基类成员在派生类中访问属性可能发生变化二义性问题A f() A f()B CDB:f()C:f()Class B():A()构造函数Lgw:在C+中,有两种继承方式:单一继承和多重继承。单继承:派生类中只有一个直接基类;多继承:派生类中有多个直接基类;定义派生类的一般格式:class : private: / 私有成员说明 . public: / 公有成员说明 定义派生类新成员 . protected: / 保护成员说明 . ;继承方式:public 公有继承(派生) private 私有继承(派生) protected 保护继承(派生)单一继承:A B PublicPrivateprotectedB内B外B内B外B内B外publicpublic 可访问Private不可访问protected不可访问private不可访问不可访问不可访问 不可访问 不可访问不可访问protectedprotected 不可访问Private不可访问protected不可访问多重继承:一般格式:class : , , /以下定义派生类新成员 private: / 私有成员说明 . public: / 公有成员说明 . protected: / 保护成员说明 . ;三、多态性早期联编 晚期联编(运行)重载:函数重载;运算符重载;虚函数。抽象类Lgw:重载运算符的限制(1)只能对已有运算符重载,不可臆造新的运算符。(2)不允许改变运算符的优先级和结合性。(3)不允许改变运算符的语法结构, 如二元运算符只能重载成二元运算符,一元运算符只能重载成一元运算符。运算符重载的两种方式:在类内定义运算符重载函数的格式为:(1) operator ( ) (2)在类外定义运算符重载函数的格式为: :operator ( )声明形式函数类型 operator 运算符(形参) .重载为类成员函数时:参数个数=原操作数个数-1(后置+、-除外)(因为对象本身就是其中的一个操作数)。重载为友元函数时: 参数个数=原操作数个数,且至少应该有一个自定义类型的形参。联编是指一个计算机程序彼此关联的过程。按照联编所确定的时刻不同,可分为两种:静态联编和动态联编。静态联编是指联编出现在编译连接阶段,即函数调用关系的确定是在程序执行之前。这种联编又称早期联编,通过这种联编可实现静态多态。动态联编:运行阶段才能确定函数的调用关系动态联编又称滞后联编、晚期联编。虚函数将成员函数定义成虚函数的格式为:virtual ( )定义纯虚函数的一般格式为:virtual ( ) = 0 ;四、C+ I/O系统例 14.21 将数值1100及其平方根写入文件 sqrttable.txt #include #include #include void main( ) double x; ofstream out; / 定义一个输出流对象 out.open(sqrttable.txt); / 打开文本文件sqrttable.txt for(x=1; x=100; x+)outxtsqrt(x)endl; / 将结果写入文件 out.close( ); / 关闭文件例 14.22 编写一个程序,用于显示一个文本文件 #include #include #include void main( )char filename40, line80;ifstream infile; coutfilename; / A infile.open(filename); / B if(!infile) coutCan not open file: filenameendl;exit(1);while(infile.getline(line, 80) / 读入一行coutlineendl;infile.close( ); / 显示一行 附件:附件一:运算符重载1.定义一个复数类,其数据成员为复数的实部和虚部,用成员函数重载运算符-、用友元函数重载运算符+,直接实现两个复数间的加、减运算。#includeclass Complexfloat Real, Image;public:Complex(float r=0,float i=0) Real=r;Image=i; /2分Complex operator-(Complex &); /用成员函数实现friend Complex operator+(Complex &,Complex &); /用友元实现void show()cout0) cout+Imagei;else if(Image0) coutImagei;coutendl; /4分Complex Complex: operator-(Complex &c) return Complex(Real-c.Real, Image-c.Image); /7分Complex operator+(Complex &c1, Complex &c2)Complex t;t.Real=c1.Real+c2.Real;t.Image=c1.Ima
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 统编版2025-2026学年五年级上册语文期末专项复习-词语有答案
- 江苏省盐城市2024-2025年七年级下学期期末考试历史试卷(含答案)
- 2025年江西省吉安市吉水县中考物理二模试卷(含答案)
- 城市交通智能化发展前景研究
- 酒店行业市场复苏现状与前景
- “云·仓·配”带你走进智慧新世界-智慧仓储与配送管理知到智慧树答案
- “玩”创未来知到智慧树答案
- DB15-T 3155-2023 降雪对放牧畜牧业影响预报技术规程
- 水阻柜原理课件
- 消防消防水源保障方案
- 2023届高考英语人教版一轮复习:必修第一册至选修第四册单词表讲义
- 《肿瘤筛查技术》课件
- 高温熔融金属企业安全知识培训
- 实验室生物安全手册
- 《教学勇气-漫步教师心灵原书》
- 航天禁(限)用工艺目录(2021版)-发文稿(公开)
- 医院行政办公室主任职责
- 争做“四有好老师”-当好“四个引路人”
- 外研版高中英语词汇表(全套)
- 共同风险投资协议书
- DB32-T 4752-2024 一体化污水处理设备通.用技术要求
评论
0/150
提交评论