C++复习资料文档格式.docx
- 文档编号:21049283
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:8
- 大小:18.44KB
C++复习资料文档格式.docx
《C++复习资料文档格式.docx》由会员分享,可在线阅读,更多相关《C++复习资料文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
*p=10//错误、
常指针:
把指针本身,而不是它指向的对象声明为常量。
用*const表示,通过该指针可以修改它指向的对象的值,但它不可以指向其他的对象。
inta=0,b=1;
int*constp=&
*p=10;
b;
//错误
指向常量的常指针:
两个目标都要说明为const,如
inta=0,b=1;
constint*constp=&
//错误,不能修改它指向的对象
//错误,不能指向其他对象。
3.枚举名、结构体和公用体的简单用法。
注意事项:
1.CONST修饰的是紧跟其后的声明元;
2.可以将变量的指针赋给指向常量的指针,但常量的地址不能赋给无约束的指针(一般指针)。
3.所有取缺省值参数都必须出现在不取缺省值的参数的右边。
4.不允许创建引用数组;
类型void&
是不允许的。
若一个函数要求返回引用,则return后面应该是一个引用(形式可以是独立引用、数组元素、static变量、指针所指向的对象、结构的分量、联合的分量),它实际上是返回的某个存储单元。
5.要回收new分配的数组空间,不需要显式指出数组大小,如delete[]point;
表示删除由point指向的数组。
第二章类和对象
本章复习重点是掌握以下概念和问题:
1.数据封装2。
继承3。
多态性4。
对象成员的引用(通过对象名和成员运算符、通过指向对象的指针、通过对象的引用)5。
类的三种形式:
class类、struct类、union类。
定义及实现方法。
第三章关于类和对象的进一步讨论
本章要掌握的重点:
1.概念:
构造函数、函数重载、类、友元类、友元函数。
2.类对象的初始化。
3.构造函数和析构函数功能及定义形式
4.This指针
5.静态数据成员和静态成员函数的用法。
6.友元函数及友元类的用法。
7.对象数组、类常量、指向对象的指针。
1.类成员有3类访问权限:
公有、私有和保护。
说明为保护的成员除了可以被类本身的成员函数和说明为友元类的成员函数访问外,也可以被该类的派生类的成员访问。
2.与构造函数对应的是析构函数。
当一个对象消失或用NEW)创建的对象用DELETE删除时,由系统自动调用类的析构函数。
3.类的每一个成员函数都有一个隐含定义的常量指针。
我们把它称为THIS指针。
这个指针只能在类的成员函数中使用,它指向调用成员函数的对象。
4.静态数据成员在定义时前面加关键字STATIC。
静态数据成员属于类而不属于对象,是类的所有对象共享的成员。
使用静态数据成员可以节省内存。
他们的初始化一般放在类定义之外进行。
方式为:
TYPE类名:
:
静态数据成员名=初始值
5.友元函数没有this指针,这与static成员函数类似。
6.一个成员函数名后面跟一个CONST,表示它不能修改this所指的对象的成员。
第四章运算符重载
运算符重载的语法形式operator@(参数表)如operator++()
哪些运算符可以被重载,哪些不能?
用成员函数和用友元函数重载运算符有什么不同?
怎样重载<
和>
运算符?
转换构造函数、类型转换函数。
重载运算符时,不能改变它们的优先级,不能改变它们的结合性,也不能改变这些运算符所需操作数的数目。
.:
?
#*几个运算符不能被重载。
成员函数仅仅能为一个实际对象所调用,友元无此限制。
因此若运算符的操作需要修改类对象的状态,则重载应该用成员函数而不是友元。
需要左值操作数的运算符的重载用成员函数,如果运算符所需的操作数(尤其是第一个操作数)希望有隐式类型转换,则该运算符重载必须用友元。
不能用友元函数重载的运算符是=()[]->
转换构造函数的作用是将一个其他类型的数据(可以是类类型也可以是非类类型)转换成一个指定的类的对象。
它只有一个参数。
如:
Complex(doubler){real=r;
imag=0;
}
Teacher(Student&
s){num=s.num;
name=s.name;
sex=s.sex;
}(s中的成员应是公用的)
类型转换函数的作用是将一个类的对象转换成另一个基本类型的数据。
一般形式是
OPERATOR类型名(){实现转换的语句}//不能指定函数类型,也无参数。
operatordouble(){returnreal;
}
6.类型转换函数可以定义为一个类的成员函数,但不能定义为友元。
第五章继承与派生
本章复习重点:
派生类的定义及形式
派生类成员的访问属性
派生类构造函数的声明方法
多重继承派生类的构造函数
虚基类的概念及使用
私有成员段在类外不能被访问(除非友元关系),私有成员段不能被继承。
保护段成员在类外不能被访问(除非友元关系),保护段成员能被继承。
公有段成员在类外能被访问,能被继承。
如为公有派生基类所有公有段的成员仍是派生类公有段的成员,基类保护段的成员也是派生类保护段的成员,而私有派生则表示,基类所有公有段的成员和保护段的成员都成为派生类私有段的成员。
如果派生类定义了与基类同名的成员,则派生类的成员就覆盖了基类的成员,这时在派生类中使用基类中的同名成员要在基类成员名前加上基类名:
。
)
6.C++提供虚基类,使得在继承间接共同基类时只保留一份成员。
第六章多态性与虚函数
1.多态性的概念:
向不同的对象发送同一个消息,不同对象在接收时会产生不同的行为。
2.虚函数的作用:
在程序中,通过指针调用不同派生层次中的同名函数。
调用形式相同。
3.纯虚函数和抽象类:
在声明时被初始化为0的函数叫纯虚函数;
只作为基本类型用作继承的类叫抽象类。
虚函数可以在一个或多个派生类中被重新定义,但要求在派生类中重新定义时,虚函数的函数原型,包括返回类型、函数名、参数个数、参数类型的顺序,必须完全相同。
第七章输入输出流
1.Iostream类库中常用流类。
2.常用流成员函数get、getline、eof、peek、putback、ignore。
3.文件操作:
打开、关闭、输入输出方式设置、ASCII文件操作、二进制文件操
典型例题
解释程序功能并写出运行结果
1.#include<
iostream.h>
classs
intx,y;
public:
s(inta,intb){x=a;
y=b;
intgetx(){returnx;
intgety(){returnx+y;
};
voidmain()
int(s:
:
*fp)();
fp=s:
getx;
ss1(1,2);
intv=(s1.*fp)();
gety;
intt=(s1.*fp)();
cout<
"
v="
v<
t="
t<
endl;
(答案:
v=2,t=7)
2.#include<
{
inta[]={10,20,30,40},*pa=a;
int*&
pb=pa;
pb++;
*pa<
20)
编程序例题
3.写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在60以下分数段的学生数据。
#include<
stdio.h>
string.h>
#defineN3
classstud
intno;
charname[10];
intdeg;
voidsetdata(intn,charna[],intd)
{
no=n;
deg=d;
strcpy(name,na);
}
voiddisp()
if(deg<
60)
printf("
%-5d%-8s%3d\n"
no,name,deg);
studst[N];
inti,n,d;
charna[10];
for(i=0;
i<
N;
i++){
输入学号姓名成绩:
);
scanf("
%d%s%d"
&
n,&
na,&
d);
st[i].setdata(n,na,d);
输出数据\n"
学号姓名成绩\n"
i++)
st[i].disp();
4.有一个向量类Vector,包括一个点的坐标位置x和y,设计两个友元函数,实现两个向量的加法和减法运算。
在主函数中实现向量(10,20)和(30,40)的加减运算。
classVector
Vector(){}
Vector(inti,intj){x=i;
y=j;
voiddisp()
("
x<
"
y<
)"
;
friendVectoradd(Vectorv1,Vectorv2)
Vectorv;
v.x=v1.x+v2.x;
v.y=v1.y+v2.y;
returnv;
friendVectorsub(Vectorv1,Vectorv2)
v.x=v1.x-v2.x;
v.y=v1.y-v2.y;
voidmain()
Vectorv1(10,20),v2(30,40),v3;
v3=add(v1,v2);
输出结果:
cout<
"
v1.disp();
+"
v2.disp();
="
v3.disp();
v3=sub(v1,v2);
-"
5.对+、-、×
、/、++、--、>
、<
的重载。
6.对文件的操作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)