1、第一章复习第一章复习混合型语言,混合型语言,mainmain函数,函数,cppcpp,兼容,兼容c c语言,语言,注释注释/和和/*/*/,coutcout和和cincin,提取运算符提取运算符插入运算符(流运算符)插入运算符(流运算符),命名空间,对象初始化命名空间,对象初始化 int x int x(0 0););函数返回值:函数返回值:returnreturn语句语句函数申明格式函数申明格式constconst限定限定1/921 1函数重载条件函数重载条件新数据类型新数据类型boolbool和数据常量表示形式和数据常量表示形式0L0L,01230123,0505,0808,0100010
2、0,0 x100 x10,0 x250 x25,0 x160 x16,NULLNULL,101101,nn,4.5f4.5f,52.3F52.3Fnewnew和和deletedelete引用引用不占内存,是变量别名,共用一段内存不占内存,是变量别名,共用一段内存申明引用时要初始化,不能有空引用申明引用时要初始化,不能有空引用2/922 2不能申明引用引用不能申明引用引用 int&r=x;int&r=x;int&t=x;int&t=x;int&r=t;int&r=t;能够申明对指针引用能够申明对指针引用 int*p;int*p;int*&p1=p;int*&p1=p;不能直接申明数组引用不能直接
3、申明数组引用同过同过typedeftypedef来实现数组引用。来实现数组引用。typedef int array10typedef int array10;array a;array a;array&r=a;array&r=a;3/923 3constconst限定符限定符泛型算法泛型算法reverse,copyreverse,copy,reverse_copyreverse_copy,sortsort,findfindostream_iterator(cout,”n”)ostream_iterator(cout,”n”)greater()greater()functional,algori
4、thmfunctional,algorithma,a+10 aa,a+10 a是数组名是数组名4/924 4简单输入输出格式简单输入输出格式 iomanip(iomanip(带参数操作符带参数操作符)decdec,octoct,hexhexendlendlsetfillsetfillsetwsetwios_base:left ios_base:left 数据居左显示数据居左显示ios_base:right ios_base:right 数据居右显示数据居右显示ios_base:showpos ios_base:showpos 是否显示正号是否显示正号ios_base:scientific io
5、s_base:scientific 科学计数法显示科学计数法显示结合第九章复习结合第九章复习5/925 5structstruct定义结构体,类似类定义定义结构体,类似类定义结构体封装性,结构函数初始化结构体对象结构体封装性,结构函数初始化结构体对象 简单类定义简单类定义p37p37页页C+C+面向对象程序设计特点面向对象程序设计特点第二章复习第二章复习6/926 6stringstring对象定义形式,对象定义形式,对象中字符计数从对象中字符计数从0 0开始开始string s=“hello”string s=“hello”;string s1=s.substr(3,3);string s1
6、=s.substr(3,3);&s&s含义,含义,sisi含义,含义,&si&si含义含义组员函数使用组员函数使用findfind,sizesize,substrsubstr,swapswap,beginbegin,endendFindFind与泛型算法与泛型算法findfind区分区分7/927 7string s;string s;getline(cin,s,n);getline(cin,s,n);表示由表示由cincin输入一行字符串,存入输入一行字符串,存入s s中,中,回车完成输入回车完成输入stringstring对象和泛型算法对象和泛型算法string s1=“hello eve
7、ryone”;string s1=“hello everyone”;string s2;string s2;s2=s1;s2=s1;copy(s1.begin(),s1.end(),s2.begin();copy(s1.begin(),s1.end(),s2.begin();copy,reverse_copy,find,sortcopy,reverse_copy,find,sort8/928 8complexcomplex是模板类,是模板类,complex n(1,2);complex n(1,2);coutn.real()“+”n.imag()“i”coutn.real()“+”n.imag
8、()“i”-组员,类引用组员,类引用.组员组员 ,类对象,类对象.组员。注意经组员。注意经过指针,对象,引用使用类组员方式过指针,对象,引用使用类组员方式 32/923232结构函数结构函数默认结构函数默认结构函数复制结构函数复制结构函数析构函数析构函数 NewNew和结构函数,和结构函数,deletedelete和析构函数和析构函数结构函数默认参数结构函数默认参数对象作组员时,结构函数调用对象作组员时,结构函数调用何时调用?调用格式?调用效果?何时调用?调用格式?调用效果?33/923333thisthis指针指针对象性质对象性质类性质类性质面向对象标识图:对象结构与连接面向对象标识图:对象
9、结构与连接编译指令:编译指令:#include#include,#define#define,#if#if,#else#else34/92343435/92353536/92363637/92373738/92383839/92393940/924040第五章复习第五章复习ConstConst组员初始化形式组员初始化形式引用组员初始化形式引用组员初始化形式对象组员初始化形式对象组员初始化形式结构函数初始化列表结构函数初始化列表41/924141静态数据组员定义和初始化形式静态数据组员定义和初始化形式静态数据组员使用注意事项静态数据组员使用注意事项静态组员函数定义形式静态组员函数定义形式静态组员
10、函数使用注意事项静态组员函数使用注意事项静态对象使用注意事项静态对象使用注意事项42/924242友元特点和定义形式友元特点和定义形式普通函数作友元普通函数作友元一个类组员函数作另一个类友元一个类组员函数作另一个类友元一个类作另一个类友元一个类作另一个类友元单向、不传递单向、不传递能够经过对象、引用、指针使用私有组员能够经过对象、引用、指针使用私有组员43/924343ConstConst限定限定常组员、常函数、常对象常组员、常函数、常对象constconst组员初始化组员初始化ConstConst限定引用作函数参数限定引用作函数参数ConstConst对象定义形式对象定义形式ConstCon
11、st限定对象使用特点限定对象使用特点ConstConst限定函数使用特点限定函数使用特点const int x=1,y=2;int const a=1,b=2;x,y,a,b均为常量均为常量44/924444数组和类数组和类指向组员函数指针指向组员函数指针类型类型 (类名:(类名:*指针名)(参数类型)指针名)(参数类型);f f是类是类a a组员函数,有两个组员函数,有两个intint参数,无返回值参数,无返回值Pf=a:f;Pf=a:f;给出给出pfpf定义形式定义形式给出经过给出经过pfpf调用调用f f调用形式调用形式(对象对象对象对象.*.*.*.*函数指针函数指针函数指针函数指针)
12、(参数)(参数)(参数)(参数)45/92454546/92464647/92474748/92484849/9249491050/9250501151/92515152/925252第六章复习第六章复习53/925353继承派生概念继承派生概念单一继承定义形式单一继承定义形式 私有派生、公有派生、保护派生私有派生、公有派生、保护派生派生类中继承自基类组员改变派生类中继承自基类组员改变派生类对象产生结构函数调用派生类对象产生结构函数调用派生类对象释放析构函数调用派生类对象释放析构函数调用赋值兼容规则赋值兼容规则多重继承与二义性多重继承与二义性54/92545455/92555556/92565
13、657/925757658/925858659/92595960/926060第七章复习第七章复习类模板定义类模板定义类模板组员函数在类体外定义格式类模板组员函数在类体外定义格式类模板定义对象格式类模板定义对象格式类模板继承派生类模板继承派生61/926161向量向量5 5种定义形式及含义种定义形式及含义向量泛型指针:正向、逆向向量泛型指针:正向、逆向向量组员函数:向量组员函数:begin begin,endend,sizesize,max_sizemax_size,capacity capacity,emptyempty,frontfront,backback,operator operat
14、or 向量与泛型算法向量与泛型算法62/92626263/92636364/92646465/92656566/92666667/92676768/92686869/92696970/92707071/92717172/92727273/92737374/92747475/92757576/927676第八章复习第八章复习静态联编多态性静态联编多态性动态联编多态性动态联编多态性虚函数,虚函数产生动态联编条件虚函数,虚函数产生动态联编条件结构函数和析构函数调用虚函数实例:例结构函数和析构函数调用虚函数实例:例8.38.3纯虚函数和抽象类纯虚函数和抽象类多重继承和虚函数多重继承和虚函数77/927
15、777第八章复习第八章复习78/92787879/92797980/92808081/92818182/92828283/92838384/92848485/92858586/92868687/92878788/928888第九章复习第九章复习赋值运算符重载赋值运算符重载插入运算符插入运算符运算符重载运算符重载+运算符重载运算符重载运算符重载运算符重载89/9289891 1,运算符重载就是函数重载,运算符重载就是函数重载,运算符重载就是函数重载,运算符重载就是函数重载2 2,运算符重载两种方式:类运算符,友元运算符,运算符重载两种方式:类运算符,友元运算符,运算符重载两种方式:类运算符,友元
16、运算符,运算符重载两种方式:类运算符,友元运算符3 3,.:*?:sizeof#.:*?:sizeof#不能重不能重不能重不能重载载载载4 4,=()()()()-只能重载为类运算符只能重载为类运算符只能重载为类运算符只能重载为类运算符5 5,运算符重载不能改变运算符原来运算数个数,运算符重载不能改变运算符原来运算数个数,运算符重载不能改变运算符原来运算数个数,运算符重载不能改变运算符原来运算数个数6 6,不能自己定义新运算符,不能自己定义新运算符,不能自己定义新运算符,不能自己定义新运算符7 7,除赋值运算符外,其它重载运算符可继承,除赋值运算符外,其它重载运算符可继承,除赋值运算符外,其它重载运算符可继承,除赋值运算符外,其它重载运算符可继承8 8,重载运算符不能使用缺省参数,重载运算符不能使用缺省参数,重载运算符不能使用缺省参数,重载运算符不能使用缺省参数90/92909091/92919192/929292