当前位置:文档之家› c期末复习资料

c期末复习资料

c期末复习资料
c期末复习资料

1、面向对象相关概念:

类:具有相同属性和行为的对象集合,把数据和操作封装在一起

对象:数据+操作。

面向对象特征:抽象,封装,继承,多态

2、输入输出:输入cin>>a>>b;输入不能有endl。输出cout<

3、const修饰符:

●指向常量的指针:如const char *p=”abcd”;不允许改变指针所指的常量,如p[3]=’

x’是错误的,但是可以改变指针p的值p=“mn”;是对的。

●常指针:char *const p =“abcd”;指针本身是常量,不能移动,但是所指内容为变

量,可以更改,如p[3]=’x’是对的。

●常数据成员,常成员函数,常对象:在类中声明的数据或函数可以是常量,对于常数

据成员要用初始化列表初始值,在C++类中,const关键字可以修饰对象和成员函数,const对象不能被修改,一个常对象只能调用它的常成员函数,不能调用普通成员函数。

常成员函数格式:类型说明符函数名(参数表)const;常成员函数可以参加重载。

常成员函数不能更新对象的数据成员,也不能调用该类中的普通成员函数,const成员函数不能修改数据成员。

4、内联函数:在函数说明前冠以关键字inline,目的是消除函数调用时的系统开销,提高运行速度。

注意:

内联函数体内不能有循环语句和switch语句。

内联函数的声明必须出现在内联函数第一次被调用之前。

类结构中所有在类说明体内定义的函数都是内联函数。

5、带有缺省参数值的函数:在说明函数原型时,可以给一个或多个形参指定缺省值,调用时如给出实参,则采用实参值,否则采用预先给出的默认形参值。如某一个类point的构造函数原型为point(int x=1, int y=0);则参数x和y的缺省值为1和0.

注意:

在函数原型中,所有缺省值的参数都必须从右往左缺省,在函数调用时从左往右将实参与形参结合,如point(int x=1, int y=0) {X=x;Y=y;},那么执行point p(3)之后p的X和Y值分别为3,0.

6、函数重载:C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。

注意:

重载函数的形参必须不同: 个数不同或类型不同。编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。

例:

void add(int m, int n)

{ cout<<”two integer numbers m+n=”<

void add(float x,float y)

{ cout<<”two float numbers m+n=”<< m+n<

int i=1,j=2;float f=1.0,d=2.0;

add(i,j);add(f,d);则前者调用第一个函数,后者调用第二个函数

输出two integer numbers m+n=3

two float numbers m+n=3.0

7、引用:引用(&)是标识符的别名,例如:int i;int &ri=i; //建立一个int型的引用ri,并将其初始化为变量i的一个别名。

注意:

声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象,不能声明完成后再赋值,如 int i;

int &ri;//错误

ri=i;

一旦一个引用被初始化后,就不能改为指向其它对象。如:int i,j;

int &ri=i;

ri=&j;//错误

引用可以作为形参作为传地址调用,效果和指针一样。void s a, int& b) {...}

引用与地址符的区别:引用运算符仅在声明是带有引用运算符&,以后就像使用普通变量一样,其他场合使用&都是地址操作符

8、作用域标识符(::)如果希望在局部变量的作用域内使用同名的全局变量,在该变量前加上::,如::a代表全局变量。

9、new和delete

运算符new用来内存分配,最基本格式为:指针变量=new 类型名;该语句在程序运行时从自由存储区中为程序分配一类型名字节大小空间,该空间首地址被存于指针变量中。

运算符delete用于释放new分配的存储空间,基本格式:delete 指针名;

说明:

●可以用new将分配的对象初始化,new和delete都可以重载。

●new分配的空间使用结束后应该也只能用delete显式释放,否则将不能回收而变成死

空间

●使用new为数组动态分配内存:指针变量=new 类型名[下标值];如int *p=new

int[10];

释放时:delete []指针变量名;如delete []p;

●new可以为简单变量分配内存时同时进行初始化,指针变量=new 类型名(初始化列表);如int *p=new int(10);

10、类是一种用户自定义类型,声明形式:

class 类名称

{

public:

公有成员(外部接口)

private:

私有成员

protected:

保护型成员

};类成员中缺省访问方式为私有

●公有类型成员:在关键字public后面声明,它们是类与外部的接口,任何外部函数都

可以访问公有类型数据和函数。

●私有类型成员:在关键字private后面声明,只允许本类中的函数访问,而类外部的

任何函数都不能访问。如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。

●保护类型:在类的定义中,说明为protected的数据成员称为保护成员。保护数据成

员具有双重作用:对于其派生类而言,是公有的,而对于其外部的程序而言,是私有的

●类的成员:成员数据与一般的变量声明相同,但需要将它放在类的声明体中。成员函

数在类中说明原形,可以在类外给出函数体实现,并在函数名前使用类名加以限定。

也可以直接在类中给出函数体,形成内联成员函数。

●类的对象是该类的某一特定实体,即类类型的变量。声明形式:

类名对象名;例:Clock myClock;

●类中成员的访问方式:类中成员互访:直接使用成员名类外访问:使用“对象名.成

员名”或“对象指针名->成员名“方式访问 public 属性的成员

11、构造函数

构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。

特点:

●在对象创建时或new类名时由系统自动调用。

●如果程序中未声明,则系统自动产生出一个默认形式的构造函数,只有程序中定义

相关主题
文本预览
相关文档 最新文档