构造函数和析构函数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题

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、若有如下类定义,则下列叙述正确的是()。

class Time

{ int H,M,S;

public:

void Time(int h,int m,int s) { }; //A } //B

A、A行有错误

B、B行有错误

C、A和B行都有错误

D、A和B行都没有错误

6、若有如下类定义,则下列叙述正确的是()。 class S

{ int x;

public:

S ( ) {x=0;}

S (int a) {x=++a;}

void show( ) {cout<<”x=”<

int main()

{ S s1=100;

s1.show();

return 0;

}

A、有语法错

B、100

C、101

D、0

7、若有如下类定义,x的值是()。

class S

{ int x;

S (int a=0) {x=++a;}

~S ( ) { };

};

int main( )

{ S a (10);

return 0;

}

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);

12、若有以下程序:

# include

using namespace std;

class Q{

int x,y;

public:

Q(int a=0,int b=0) { x=a; y=b; } ……

};

int main( )

{ Q q( ); //L

……

return 0;

}

则以下说法正确的是()。

A、L行说明了一个对象q

B、L行说明了一个函数原型

C、L行说明了一个对象数组

D、以上说法都不正确

13、不属于构造函数的特点是()。

A、具有与类名相同的函数名

B、带返回值

C、允许重载

D、在定义类的对象时自动调用

14、以下属于析构函数特征的是()。

A、析构函数名与类名不能相同

B、析构函数的定义必须在类体内

C、析构函数可以带或不带参数

D、在一个类中析构函数有且仅有一个

15、当系统提供一个默认的构造函数时,该构造函数的形参表和函数体为()。

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为一个类的类名,执行语句:

AB a[10];

则系统自动调用该类的构造函数的次数为()。

2、下列程序的输出结果是()。

class Sample

{ public:

int x,y;

Sample(int a) {x=a;}

Sample(int a,int b) {x=a; y=b; cout<

};

int main( )

{ Sample s1(5);

s1.~Sample( );

return 0;

相关文档
最新文档