第一部分绪论复习.ppt

上传人:本田雅阁 文档编号:3114997 上传时间:2019-07-12 格式:PPT 页数:37 大小:476.02KB
返回 下载 相关 举报
第一部分绪论复习.ppt_第1页
第1页 / 共37页
第一部分绪论复习.ppt_第2页
第2页 / 共37页
第一部分绪论复习.ppt_第3页
第3页 / 共37页
第一部分绪论复习.ppt_第4页
第4页 / 共37页
第一部分绪论复习.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《第一部分绪论复习.ppt》由会员分享,可在线阅读,更多相关《第一部分绪论复习.ppt(37页珍藏版)》请在三一文库上搜索。

1、第一章 绪论复习,面向对象三大特性,封装性 属性和行为封装成一个实体 数据和对数据施加的操作封装在实体内部 隐藏,公开 继承性 代码共享,复用 提高软件维护性 单继承、多继承 多态性 单一接口,多种实现 重载、虚函数,输入、输出,cin cin 析取运算符 变量 常量 cout cout 格式控制 域宽,setw(n); 对齐方式,setiosflags(ios:left); 精度,setprecision(n);,上周上机作业:用for,cout,setw输出以下图形,#include #include void main() int line_number; line_number=4;

2、int i,j; for(i=1;i=1;j-) cout*; coutendl; ,1234567 行号 * 1 * 2 * 3 * 4 域宽:行数-行号+1 *个数-1:(行数-1)*2,域宽 4 3 2 1,*个数-1 0 2 4 6,line_number=10;,line_number=20;,setprecision,#include #include void main() double i=1.23456789; int j; for(j=1;j15;j+) coutsetprecision(j)iendl; ,常指针和指向常量的指针,char * const p1=“aaaa

3、“; const char * p2=“aaaa“; p1=“bbbb“; p2=“bbbb“; *p1=c; *p2=c;,蓝桥杯一道试题,19492012 年间,一共有_个国庆节是星期日。 excel解题 weekday countif,输入任意一个年份(2000年),屏幕输出该年的年历。(已知:2000年1月1日是星期六),1、输入年份y 2、计算y年1月1日是星期几? 闰年: 366天 366 mod 7=2 平年 365天 365 mod 7=1 2000年1月1日 到 y年1月1日 years=y-2000 闰年: leapyears=1+(years-1)/4 平年: commo

4、nyears=years-leapyears (6+leapyears*2+commonyears*1) mod 7,输入任意一个年份(2000年),屏幕输出该年的年历。(已知:2000年1月1日是星期六),3、判断y年是否是闰年? 闰年:(y-2000) % 4=0 平年:(y-2000) % 4!=0 4、打印年历,类 复习,类 从访问属性上分: 私有成员 公有成员 保护成员 从种类上分: 数据成员 成员函数,类定义,类声明和类成员函数的定义相分离 一般把类的声明放在头文件(.h) 把成员函数的定义放在源文件(.cpp),void printTwoMonths(int& firstday,

5、int days1,int days2) LeftFlag: 打印标记 i: 左月当前输出日期 j: 右月当前输出日期 LeftFlag=true idays1 LeftFlag=false,类复习,类的最特殊的两个成员函数? 构造函数有什么特点? 函数名与类同名 如果没有定义任何构造函数,系统会给一个缺省的无参构造函数 只要定义了一个构造函数,系统就不会提供缺省的无参构造函数 构造函数是由系统自动调用,不允许显示调用 构造函数可以重载,类复习,拷贝构造函数 如果一个类未定义拷贝构造函数 通常什么情况下要显示定义拷贝构造函数 拷贝构造函数有几个参数 通常这个参数是什么类型,类复习,析构函数的特

6、点 函数名 参数 返回值 能否重载 功能通常是,类复习,构造函数的初始化列表 Class X X(int f,int j,int k); const int m_f; int X:X(int f,int j,int k):m_f(f),m_i(i) ,类复习,静态成员 关键字 static 两种身份 静态数据成员和静态成员函数 普通(非静态)数据成员属于 类 or 对象 静态数据成员属于 类 or 对象,对象,类,类复习,静态成员函数 可以访问 类的静态成员函数 类的静态数据成员 不可以访问 类的非静态成员函数 类的非静态数据成员 为什么? 因为 没有 this指针,类复习,this指针 每一

7、个类的成员函数,都包含一个隐含的参数 this指针 指向调用该成员函数的对象的首地址 return *this; /表示 this-类的某个数据成员,继承 复习,继承 代码复用 在现有类的基础上,派生出新类 现有类 基类 超类 父类 新类 派生类 子类,继承 复习,继承种类 私有继承 私有化 公有继承 不变 保护继承 保护化 无论是哪种继承方式,派生类对基类的私有成员访问方式: 无法访问,继承 复习,当一个类,既有基类,又有成员对象,实例化这个类的一个对象时: 先调用基类的构造函数; 然后调用成员对象类的构造函数; 最后实例化自己;,多继承,什么是多继承? 一个类派生自两个或两个以上的基类 一

8、个有多个基类的派生类,它含有多个成员对象。实例化这个派生类对象,构造顺序? 先基类 多个基类,按定义先后顺序依次构造 再成员对象 多个成员对象,按定义先后顺序依次构造 后派生类自己 析构顺序? 与构造相反,虚拟继承,关键字 virtual 出现的原因 避免出现二义性 当派生类从多个直接基类派生,而这些直接基类又从同一个间接基类派生,则在访问间接基类的成员时,会产生二义性。,基类与派生类,基类对象与派生类对象之间存在赋值相容性 基类对象能够赋值给派生类对象(派生类对象=基类对象) 派生类对象能够赋值给基类对象(基类对象=派生类对象) 把派生类对象的地址赋值给基类指针 用派生类对象初始化基类对象的

9、引用,第五章 多态性,多态性 静态多态性 函数重载 运算符重载 动态多态性 继承 虚函数,虚函数,关键字 virtual 在具有继承关系的类的层次体系中,虚函数的特性: 可继承 基类的函数定义为虚函数,派生类的该函数自动具有虚特性; 虚函数 函数原型 完全一致 只是函数名相同,虚函数,虚函数(fa) 基类指针(pr),指向不同的派生类对象 Pr-fa(); 调用的是哪个类的fa函数 非虚函数(fb) 基类指针(pr),指向不同的派生类对象 Pr-fb(); 调用的是哪个类的fb函数,运算符重载,Why 为什么要重载运算符? 运算符可以被预定义类型直接使用 自定义类型要使用运算符,必须(有例外)

10、先重载运算符 = & . - How 怎么重载运算符? 成员函数 非成员函数 友元函数 普通函数,运算符重载,成员函数形式重载运算符 参数表参数个数 运算符操作数个数 自己是默认的第一个操作数 非成员函数形式重载运算符 参数表参数个数 运算符操作数个数,运算符重载,+,-的重载 怎么区分前缀和后缀 后缀,多一个int参数 注意参数-引用类型 =赋值运算符的重载 什么情况下需要重载它? 怎么重载? 重载方式 五步曲 下标运算符,运算符重载,下标运算符 重载方式,模板复习,什么是模板 你学习了几种模板 用模板用什么好处 模板有固定的和不固定的部分 什么是模板不固定的部分 模板参数有几种 函数模板的

11、模板参数可能出现在什么地方 函数模板的模板参数可能出现在什么地方 当某种数据类型不适用于模板,怎么办,STL复习,什么是STL? STL主要包含几个部分的内容? 容器,有几大类型? 顺序容器 关联式容器 容器适配器 你记得些什么容器? vector list stack queue map multimap set multiset,STL复习,容器的begin()函数指向? 容器的end()函数指向? 容器的begin()函数和end()函数的返回类型是? 容器迭代器是什么? 一种更智能、更安全的指针 指向容器元素类型 容器迭代器怎么定义? 某容器:iterator; multimap dict; multimap:iterator it;,STL复习,算法是用什么技术实现? 泛型算法,函数模板 头文件 #include 记得哪些泛型算法? find sort count search merge,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1