”<
};
voidmain(){Aa(5,8);a.fun();
constAb(8,5);b.fun();
}
输出为:
5,8
8:
5
43.下列关于封装的说法中正确的是
i.在C++中,封装是借助于函数达到的
ii.封装不要求对象具备明确的功能
iii.在数据封装的情况下,用户可以直接操作数据
iv.封装是将一组数据和与这组数据有关的集合组装在一起,形成一个能动的实体
D
44.定义的内容允许被其它对象无限制地存取的是
i.private部分
ii.protected部分
iii.public部分
iv.以上都不对
C
45.析构函数不用于
i.在对象创建时执行一些清理任务
ii.在对象消失时执行一些清理任务
iii.释放由构造函数分配的内存
iv.在对象的生存期结束时被自动调用
A
46.静态成员函数
i.只能通过对象名(或指向对象的指针)访问该对象的静态成员
ii.只能通过对象名(或指向对象的指针)访问该对象的非静态成员
iii.可以被说明为虚函数
iv.有this指针
B
47.关于下面程序段,说法正确的是
classA{
private:
intn;
public:
A(A&);
};
A:
:
A(A&a){n=a.n;}
A.Aobj2(obj1);用对象obj1初始化具有相同类类型的对象obj2
B.Aobj2(obj1);用对象obj2初始化具有相同类类型的对象obj1
C.A(A&a)也可以不使用引用参数而仍然是复制初始化构造函数
D.A(A&a)不能访问对象的私有成员
A
48.已知A是一个类,则对于Ax=2;编译器将其解释为________。
Ax
(2)
49.结构是________的一种特例,其中成员在缺省情况下是________的。
类,公有
50.友元在________中说明,其名字的作用域在________。
类类外
51.指出下面程序段中的错误,并说明出错原因。
classA{public:
inta;
voidfa(void){}
voidfb(void){}
};
void(A:
:
*p)(void);
p=A:
:
fa;Ax,*px=newA;
(x.*p)();px->*p();
应为:
(px->*p)();
52.在下面横线处填上适当字句,使其输出结果为25,10。
#include
classLocation{intX,Y;
public:
________;
intGetX(){returnX;}
intGetY(){returnY;}}
voidLocation:
:
init(intk,intt)(X=k;Y=t;)
voidmain(){Locationa;
a.init(25,10);
________;}//输出对象a的数据成员X和Y的值。
voidinit(intk,intt)cout<53.在下面横线处填上适当字句,使程序输出结果为:
x=10,y=5
x=5,y=10
Deletex=5,y=10
Deletex=10,y=5
#include
classtt{private:
intx,y;
public:
tt(inta,intb){x=a;y=b;
________;}
~tt(){________;}
};
voidmain(){ttarr[2]={tt(10,5),tt(5,10)};}
cout<<”x=”<cout<<”Deletex=”<54.#include
classConstFun{public:
constintf5(){return5;}
intobj(){return3;}
};
voidmain(){ConstFuna;
constinti=a.f5();
intx=obj();
cout<
constConstFunb;
intj=b.f5();
cout<}
输出为:
53
5
55.运行下面的程序,写出当输入15,12时的结果
#include
classRectange{intwidth,length;
public:
Rectange(intx,inty){length=x;width=y;}
voidshow(){
cout<<”Thelengthis:
”<cout<<”Thewidthis:
”<cout<”<}
};
voidmain(){intm,n;
cout<<“Inputthelengthandthewidth!
”<cin>>m;//输入15
cin>>n;//输入12
Rectangler(m,n);r.show();}
输出为:
Inputthelengthandwidth
1512(这是输入数据)
Thelengthis:
15
Thewidthis:
12
Theareais:
180
56.#include
classmyclass{intval;
public:
myclass(inti=0){val=I;}
myclass(myclass&cp);
voidset(inti);
voidprint();
~myclass();
};
myclass:
:
myclass(myclass&cp){val=cp.val;
cout<<”Hi.val=”<voidmyclass:
:
set(inti){val=I;}
voidmyclass:
:
print(){cout<<”ThisPrintval=”<myclass:
:
~myclass(){cout<<”Destructorforval=”<myclassmyfun(myclassobj){obj.print();
obj.set(10);
returnobj;}
voidg