构造函数与析构函数补充练习
(2016-01-29 22:37:30)
标签:
it |
分类: C 程序设计 |
【补充习题】
一、
1、以下有关构造函数的叙述不正确的是( )。
A、构造函数名必须和类名一致
B、构造函数在定义对象时自动执行
C、构造函数无任何函数类型
D、在一个类构造函数有且仅有一个
2、以下有关析构函数的叙述不正确的是( )。
A、一个类只能定义一个析构函数
B、析构函数和构造函数一样可以有形参
C、析构函数不允许有返回值
D、析构函数名前必须冠有符号“~”
3、系统提供的默认拷贝构造函数中形参表和函数体分别为( )。
A、形参表为空,函数体为空
B、形参表为空,函数体不为空
C、形参表不为空,函数体为空
D、形参表不为空,函数体不为空
4、设A为test类的对象且赋有初值,则语句test B=A; 表示( )。
A、语法错
B、为对象A定义一个别名
C、调用复制构造函数,将对象A复制给对象B
D、仅说明B和A属于同一类
5、若有如下类定义,则下列叙述正确的是( )。
A
B、B行有错误
C、A和B行都有错误
D、A和B行都没有错误
6、若有如下类定义,则下列叙述正确的是( )。
A
B、100
C、101
D、0
7、若有如下类定义,x的值是( )。
}
A、0
B、10
C、11
D、有语法错,得不到值
8、假定AB为一个类,则执行“AB
a(4),b[3],*p[2];”语句时,自动调用该类构造函数的次数为( )。
A、3
B、4
C、6
D、9
9、已定义类A,该类构造函数的参数都没有缺省值,执行语句:
A a1(2),a2(1,2),*p=new
A[3];
则自动调用该类缺省的构造函数的次数为( )。
A、1
B、2
C、3
D、5
10、假定AB为一个类,则该类的拷贝构造函数的声明语句为( )。
A、AB &(AB x);
B、AB(AB x);
C、AB(AB &);
D、AB(AB
*x);
11、C++中不能被派生类继承的是( )。
A、虚函数
B、析构函数
C、静态成员函数
D、运算符重载函数
12、若有以下程序:
}
A、L行说明了一个对象q
B、L行说明了一个函数原型
C、L行说明了一个对象数组
D、以上说法都不正确
13、不属于构造函数的特点是( )。
A、具有与类名相同的函数名
B、带返回值
C、允许重载
D、在定义类的对象时自动调用
14、以下属于析构函数特征的是( )。
A、析构函数名与类名不能相同
B、析构函数的定义必须在类体内
C、析构函数可以带或不带参数
D、在一个类中析构函数有且仅有一个
15、当系统提供一个默认的构造函数时,该构造函数的形参表和函数体为( )。
A、无形参,函数体为空
B、有形参,函数体为空
C、无形参,函数体不为空
D、有形参,函数体不为空
16、下列关于构造函数与析构函数的叙述中错误的是( )。
A、均无返回值
B、均不可定义为虚函数
C、构造函数可以重载,而析构函数不可重载
D、构造函数可带参数,而析构函数不可带参数
17、当对象要消除的时候,系统自动调用的函数是( )。
A、拷贝构造函数
B、复制函数
C、构造函数
D、析构函数
18、析构函数与构造函数非共同具有的特点是( )。
A、函数名与类名相同
B、允许重载
C、不能使用void说明返回类型
D、不带返回值
19、拷贝函数的作用为( )。
A、创建一个与已知对象共用同一内存地址的对象
B、用一个已知对象来初始化一个被创建的同类的对象
C、创建一个与已知对象完全相同的对象
D、创建一个临时对象
20、通常拷贝构造函数的形参是( )。
A、指向对象的指针
B、对象的引用
C、一个对象
D、类
21、假定A为一个类,并执行语句A
a; 后,则( )。
A、系统将自动调用构造函数
B、系统将自动调用析构函数
C、系统将自动调用拷贝构造函数
D、系统将自动调用复制构造函数
二、
1、若AB为一个类的类名,执行语句:
2、下列程序的输出结果是( )。
3、下列程序的输出结果是( )。
}
4、下列程序的输出结果是( )。
5、写出以下程序的执行结果( )。
6、下列程序的输出结果分别为( )和( )。
}
7、下列程序第一行和第二行输出结果分别是( )。
class Sample
{
};
int main( )
{
}
8、下列程序的第一行输出的结果是( ),第二行输出的结果是( )。
class S
{
};
int main( )
{
9、下列程序的输出结果分别是( )和( )。
class A
{
};
int main( )
{
}
10、如下程序的第一行输出结果是( ),第二行输出结果是( ),第三行输出结果是( )。
#include
using namespace std;
class Test
{
};
int main( )
{
}
11、下列程序的输出结果是(
#include
using namespace std;
class Sample
{
};
int main()
{
}
12、若有下列类定义,请对其构造函数进行完善。
class A
{
};
class S
{
};
13、下面的字符串类实现了对英语单词的初始化,并且实现搜寻子串的功能,若存在相应的子串,则进行相应的统计。请完善该程序。
【上期课后习题答案】
1、抽象,形象
2、封装性、继承性、多态性
3、class,私有,公有,公有,私有
4、public,private,protected,private,无,允许
5、略