面向对象程序设计综合练习〔填空题〕
1.C++语言是在_________语言的基础上发展起来的.
2.C++语言的编译单位是扩展名为__________的__________文件.
3.行尾使用注释的开始标记符为__________.
4.多行注释的开始标记符和结束标记符分别为__________和__________.
5.用于输出表达式值的标准输出流对象是_________.
6.用于从键盘上为变量输入值的标准输入流对象是________.
7.一个完整程序中必须有一个名为________的函数.
析构函数的定义8.一个函数的函数体就是一条_________语句.
9.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据.
10.重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名函数有所不同.
11.如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字.
12.定义一个函数模板要用到的第一个修饰符是____________.
13.在函数模板的参数中,用class修饰的参数称为__________参数.
14.已知int cubin<int n>{return n*n*n;}和double cubin<double n>{return n*n*n;}是一个函数模板的两个实例,假定类型参数用T表示,则该函数模板的定义是__________________________________.
15.如果一个函数中有多个默认参数,则默认参数必须全部处在形参表的________部分.
16.函数形参的作用域是该函数的____________.
17.程序的编译是以__________为单位进行的.
18.执行int p=new int操作得到的一个动态分配的整型对象为________.
19.执行int *p=new int[10]操作,使p指向动态分配的数组中下标为0的元素,该元素可表示为_______或________.
20.执行char *p=new char<’a’>操作后,p所指向的数据对象的值为________.
21.执行new char[m][n]操作时的返回值的类型为________.
22.执行________操作将释放由p所指向的动态分配的数据空间.
23.执行________操作将释放由p所指向的动态分配的数组空间.
24.已知语句"cout<<p;"的输出是"Hello!",则语句"cout<<*p;"输出的是__________.
25.已知语句"cout<<s;"的输出是"apple",则执行语句"cout<<s+2;"的输出结果为__________.
26.与类成员访问表达式p->name等价的表达式是____________.
27.与类成员访问表达式<*fp>.score等价的表达式是____________.
28.以面向对象方法构造的系统,其基本单位是__________.
29.类是__________的抽象.
30.每个对象都是所属类的一个__________.
31.每个对象都是所属__________的实例.
32.对象将其大部分实现细节隐藏起来,这种机制称为__________.
33.面向对象软件工程包括五个部分,即面向对象分析、__________、__________、__________和__________.
34.类定义中,既包含数据成员,也包含________成员.
35.类中的数据成员的访问属性通常被指明为________.
36.类中的供外部调用定义的函数成员,其访问属性通常被定义为________.
37.对于类中定义的任何成员,其隐含访问权限为________.
38.对于结构中定义的任何成员,其隐含访问权限为________.
39.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为________.
40.若在类的定义体中给出了一个成员函数的完整定义,则该函数属于________函数.
41.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上________和两个冒号分隔符.
42.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上类名和两个________分隔符.
43.若要把类外定义的成员函数规定为内联函数,则必须把________关键字放到函数原型或函数头的前面.
44.假定AA是一个类,"AA* abc<>;"是该类中一个成员函数的原型,则在类外定义时的函数头
为__________________.
45.为了避免在调用成员函数时修改对象中的任何数据成员,则应在定义该成员函数时,在函数头的后面加上________关键字.
46.若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后面加上________关键字.
47.一个类的__________函数实现对该类对象的初始化功能.
48.一个类的__________函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务.
49.当用户为一个类定义有____________时,则系统不会为该类再自动生成一个默认构造函数.
50.假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为__________.
51.假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为__________.
52.定义类动态对象数组时,其元素只能靠自动调用该类的____________来进行初始化.
53.在一个类中定义拷贝构造函数的目的,是为了当利用该类的一个对象初始化另一个对象时,能够避免这两个对象的同一指针同时指向同一块__________________.
54.为了释放类对象中指针成员所指向的动态存储空间,则需要为该类定义____________.
55.假定 AB为一个类,则执行"AB a[10];"语句时,系统自动调用该类构造函数的次数为________.
56.假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为________.
57.对类中对象成员的初始化是通过在构造函数中给出的______________来实现的.
58.对类中常量成员的初始化是通过在构造函数中给出的______________来实现的.
59.对类中引用成员的初始化只能通过在构造函数中给出的______________来实现.
60.对类中一般数据成员的初始化既可以通过在构造函数中给出的初始化表来实现,也可以通过构造函数中的____________来实现.
61.假定要把aa定义为AB类中的一个常量整数型数据成员,则定义语句为____________.
62.假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为____________.
63.假定AB类中只包含一个整型数据成员a,并且它是一个常量成员,若利用参数aa对其进行初始化,则该类的构造函数的定义为____________________.
64.假定AB类中只包含一个整型数据成员a,并且它是一个引用成员,若利用引用参数aa对其进行初始化,则该类的构造函数的定义为____________________.
65.假定指针p指向一个动态分配的类对象,则当执行"delete p;"语句时,在释放p所指向的动态存储空间之前将自动调用该类的____________.
66.假定用户为类AB定义了一个构造函数"AB<int aa> {a=aa;}",则系统〔会/不会〕_______
__为该类自动定义一个无参构造函数"AB<> {}".
67.假定用户为类AB定义了一个构造函数"AB<int aa, char *bb=NULL>:a<aa>,b<bb>{}",则该类中至少包含有__________个数据成员.
68.假定用户为类AB定义了一个构造函数"AB<int aa> {a=aa;}",该构造函数实现对数据成员_________的初始化.
69.假定用户为类AB定义了一个构造函数"AB<int aa=0>:a<aa>{}",则定义该类的对象时,可以有________种不同的定义格式.
70.假定用户只为类AB定义了一个构造函数"AB<int aa, int bb=0> {a=aa; b=bb;}",则定义该类的对象时,其实参表中至多带有_________个实参.
71.假定用户只为类AB定义了一个构造函数"AB<int aa, int bb=0> {a=aa; b=bb;}",则定义该类的对象时,其实参表中至少带有_________个实参.
72.假定用户为类AB定义了一个构造函数"AB<int aa=0, int bb=0> {a=aa; b=bb;}",则定义该类的对象时,可以有________种不同的定义格式.
73.假定用户只为类AB定义了一个构造函数"AB<>:a<0>,b<0>{}",则定义该类对象x的定义语句"AB x<>;"是_________<正确/错误>的.
74.假定用户只为类AB定义了一个构造函数"AB<>:a<0>,b<0>{}",则定义该类对象x的定义语句"AB x;"是_________<正确/错误>的.
75.假定用户只为类AB定义了一个构造函数"AB<>:a<0>,b<0>{}",则定义该类对象x的定义语句"AB x<5>;"是_________<正确/错误>的.
76.假定AB为一个类,则类定义体中的"AB<AB& x>;"语句为该类______________的原型语句.
77.假定AB为一个类,则该类的拷贝构造函数的函数头为_____________.
78.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析构函数中应该包含有一条______________语句.
79.静态成员函数 ____访问类的静态数据成员, ____ 访问类的非静态数据成员.
80.静态数据成员必须在所有函数的定义体外进行__________.
81.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明必须在函数名前加上的限定.
82.重载运算符时,该运算符的__________、结合性以与操作符的个数不允许改变.
83.一个单目运算符作为类的成员函数重载时有________个参数;如果作为独立函数重载,则有________个参数.
84.一个双单目运算符作为类的成员函数重载时有________个参数;如果作为独立函数重载,则有________个参数.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论