面向对象习题Word文件下载.docx

上传人:b****0 文档编号:13187923 上传时间:2022-10-07 格式:DOCX 页数:68 大小:193.70KB
下载 相关 举报
面向对象习题Word文件下载.docx_第1页
第1页 / 共68页
面向对象习题Word文件下载.docx_第2页
第2页 / 共68页
面向对象习题Word文件下载.docx_第3页
第3页 / 共68页
面向对象习题Word文件下载.docx_第4页
第4页 / 共68页
面向对象习题Word文件下载.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

面向对象习题Word文件下载.docx

《面向对象习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《面向对象习题Word文件下载.docx(68页珍藏版)》请在冰豆网上搜索。

面向对象习题Word文件下载.docx

:

X(),

~X()

X:

X(参数),

~X(参数)

D.

X(参数),voidX:

~X(参数)

B

分析构造函数无返回类型、可带参数、可重载;

析构函数无返回类型、不可带参数、不可重载。

例题3:

()的功能是对象进行初始化

例题4:

下列表达方式正确的是(

)。

A.classP{B

.classP{

public:

public

intx=15;

intx

voidshow(){cout<

<

x

};

}

C.classP{D.

classP{

intf;

public

inta

f=25;

voidSeta(intx){a=x;

D

当一个对象定义时,个对象的生命周期结束时,

C++编译系统自动调用构造函数建立该对象并进行初始化;

当一

C++编译系统自动调用析构函数注销该对象并进行善后工作;

在类体内不可对数据成员进行初始化(从类对象区别于其数据成员解释);

类定义结束时需用分号;

只有类中的成员函数才能存取类中的私有数据。

例题5:

拷贝构造函数具有的下列特点中,(

)是错误的。

如果一个类中没有定义拷贝构造函数时,

系统将自动生成一个默认的

拷贝构造函数只有一个参数,并且是该类对象的引用

拷贝构造函数是一种成员函数

拷贝构造函数的名字不能用类名

如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的;

拷贝构造函数只有一个参数,并且是该类对象的引用;

拷贝构造函数的名字与类同名,并且不被指定返回类型;

拷贝构造函数是一种成员函数。

例题6:

关于静态成员的描述中,()是错误的。

A.A.静态成员可分为静态数据成员和静态成员函数

B.B.静态数据成员定义后必须在类体内进行初始化

C.C.静态数据成员初始化不使用其构造函数

D.D.静态数据成员函数中不能直接引用非静态成员

静态成员可分为静态数据成员和静态成员函数;

静态数据成员被定义后,必须对它

进行初始化,初始化在类体外进行,一般放在该类的实现部分最合适,也可以放在其他位置,例如,放在主函数前面等;

静态数据成员初始化与该类的构造函数和析构函数无关;

在静态成员函数的实现中,可以直接引用静态成员,但不能直接引用非静态成员。

例题7:

关于友元的描述中,()是错误的。

A.

A.

友元函数是成员函数,它被说明在类体内

B.

友元函数可直接访问类中的私有成员

C.

友元函数破坏封装性,使用时尽量少用

D.

友元类中的所有成员函数都是友元函数

友元函数是非成员函数,在类体内说明了,在类体外定义,定义和调用等同于一般的普通函数;

由于它可以直接访问类的私有成员,因此破坏了类的封装性和隐藏性,尽量少用。

例题8设有如下程序结构:

classBox

{…};

voidmain()

{BoxA,B,C;

}

该程序运行时调用⑴次构造函数;

调用⑵次析构函数。

(1)3

(2)3

每创建一个对象自动调用一次构造函数,在这里创建了A、B、C三个对象,所以共

调用了三次构造函数;

每释放一个对象,系统自动调用一次析构函数,A、B、C对象释放

时,分别调用析构函数,所以析构函数共调用了三次。

例题9:

设A为test类的对象且赋有初值,则语句testB(A);

表示。

将对象A复制给对象B。

执行testB(A);

语句相当于调用了默认复制构造函数,将A对象的属性复制给B对象。

例题10:

利用“对象名•成员变量”形式访问的对象成员仅限于被声明为⑴的成员;

若要访问其他成员变量,需要通过⑵函数或⑶函数。

("

public

(2)成员函数(3)友元函数

类体内的数据成员可声明为公有的、私有的和保护的,公有的数据成员可利用“对象

名.成员变量”形式来进行访问;

私有的数据成员能被类中的其他成员函数或友元函数所调用;

保护的数据成员可以在类体中使用,也可以在派生类中使用,但不能在其他类外通过对

象使用。

例题11:

分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。

#include<

iostream.h>

classone

private:

inta1,a2;

public:

one(intx1=0,x2=0);

};

voidmain()

{onedata(2,3);

cout<

data.a1<

endl;

cout<

data.a2<

}分析:

出错原因:

构造函数参数表语法错;

构造函数没有函数体;

的私有成员变量。

改正后的程序如下:

#include<

classone

{inta1,a2;

one(intx1=0,intx2=0){a1=x1;

a2=x2;

intgeta1(){returna1;

intgeta2(){returna2;

voidmain(){onedata(2,3);

data.geta1()<

data.geta2()<

例题12:

分析以下程序的错误原因,给出修改方案使之能正确运行。

#include<

classAmplifier{floatinvol,outvol;

Amplifier(floatvin,floatvout){invol=vin;

outvol=vout;

}floatgain();

Amplifier:

floatgain(){returnoutvol/invol;

{Amplifieramp(5.0,10.0);

"

\n\nThegainis=>

gain()<

成员函数在类体外定义格式是:

函数返回类型类名:

函数调用格式是:

对象名.成员函数名(参数表)。

改正后的程序如下:

classAmplifier

{floatinvol,outvol;

floatAmplifier:

gain(){returnoutvol/invol;

}voidmain()

amp.gain()<

类的对象不能直接访问类

成员函数名(参数表);

成员

例题13:

下列程序的运行结果是。

#include<

classpoint

{intx,y;

point(inta,intb)

{x=a;

y=b;

callingtheconstructorfunction."

endl;

point(point&

p);

friendpointmove(pointq);

~point(){cout<

callingthedestructorfunction.\n"

;

}intgetx(){returnx;

intgety(){returny;

point:

point(point&

p)

{x=p.x;

y=p.y;

callingthecopy_initializationconstructorfunction.'

n"

}-

pointmove(pointq){cout<

OK!

\n"

inti,j;

i=q.x+10;

j=q.y+20;

pointr(i,j);

returnr;

{pointm(15,40),p(0,0);

pointn(m);

p=move(n);

p="

p.getx()<

"

p.gety()<

根据构造函数、拷贝构造函数和友元函数的特点,执行该程序后,输出结果是:

callingtheconstructorfunction.

callingthecopy_initializationconstructorfunction.

OK

callingthedestructorfunction.

P=25,60

callingthedestructorfunction.callingthedestructorfunction.

说明:

(1)构造函数执行三次,分别初始化主函数中的对象m,p和move函数中的对象r。

(2)拷贝构造函数共执行了三次。

第一次,初始化对象n;

第二次在调用函数move()时,实参n给形参q进行初始化;

第三次是执行函数move的returnr;

语句时,系统用r初始化一个匿名对象时使用了拷贝构造函数。

(3)析构函数执行了六次。

在退出函数move时释放对象r和q共调用二次;

返回主函数后,匿名对象赋值给对象p后,释放匿名对象又调用一次析构函数;

最后退出整个程序时释放对象m,n和p调用三次。

例题14:

定义一个学生类,其中有3个数据成员:

学号、姓名、年龄,以及若干成员函数。

同时编写main函数使用这个类,实现对学生数据的赋值和输出。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1