类和对象与运算符重载 - 答案

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

选择题

1、若有以下说明,在类外使用对象objx成员的正确语句是()。

class X

{ int a;

void fun1();

public:

void fun2();

};

A objx.a=0

B objx.fun1();

C objx.fun2();

D X::fun1();

2、若有以下说明,对n的正确访问语句是()。

class Y

{ //………;

public:

static int n;

};

int Y::n=0;

Y objy;

A n=1;

B Y::n=1;

C objy::n=1;

D Y->n=1;

3、若有以下类Z的说明,函数fstatic的正确定义是()。

class Z

{ int a;

public:

void fstatic(Z &)static;

};

A void Z::fstatic(Z &objz){objz.a=0;}

B void Z::fs tatic(Z &objz){a=objz.a;}

C void Z::fstatic(Z &objz){a=0;}

D void Z::fstatic(Z &objz){Z::a=0;}

4、若有以下类T的说明,函数ffriend的错误定义是()。

class T

{ int i;

friend void ffriend(T &,int);

};

A void ffriend(T &objt,int k){objt.i=k;}

B void ffriend(T &objt,int k){k=objt.i;}

C void T::ffriend(T &objt,int k){K+=objt.i;}

D void ffriend(T &objt,int k){objt.i+=k;}

5、在类定义的外部,可以被访问的成员有()。

A 所有类成员

B 私有或保护类成员C公有的类成员 D 公有或私有的类成员

6、关于this指针的说法正确的是()。

A this指针必须显式说明

B 定义一个类后,this指针就指向该类

C成员函数拥有this指针 D 静态成员函数拥有this指针

7、说明一个类的对象时,系统自动调用();撤销对象时,系统自动调用()。

A 成员函数B构造函数C析构函数 D 友元函数

8、下面对构造函数的不正确描述是()。

A 系统提供默认的构造函数B构造函数可以有参数,所以也可以有返回值

C 构造函数可以重载

D 构造函数可以设置默认参数

9、下面对析构函数的正确描述是()。

A 系统不提供默认的析构函数

B 析构函数必须由用户定义

C析构函数没有参数,也没有返回值 D 析构函数可以设置默认参数

10、关于类的静态成员的不正确描述是()。

A 静态成员不属于对象B静态数据成员要在类外定义和初始化

C 静态成员函数不拥有this指针,需要通过类参数访问对象成员

D 只有静态成员函数可以操作静态数据成员

11、下面的选项中,()不是类的成员函数。

A 构造函数

B 析构函数C友元函数 D 复制构造函数

12、下面对友元的错误描述是()。

A 关键字friend用于声明友元

B 一个类中的成员函数可以是另一个类的友元

C 友元函数访问对象的成员不受访问特性影响D友元函数通过this指针访问对象成员

13、下列关于运算符重载的描述中,()是正确的。

A 可以改变参与运算的操作数的个数

B 可以改变运算符原来的优先级

C 可以改变运算符原来的结合性D不能改变原运算符的语义

14、下列函数中,不能重载运算符的函数是()。

A成员函数 B 构造函数 C 普通函数 D 友元函数

15、下面关于类型转换的描述中,错误的是()。

A 构造函数可以把一种类类型对象转换成另一种类类型对象

B构造函数可以把一种类类型对象转换成基本类型对象

C 类型转换函数可以把类类型对象转换为其他指定类型对象

D 类型转换函数只能定义为一个类的成员函数,不能定义为类的友元函数。

阅读下列程序,写出执行结果

1、

class A

{ public:

int f1();

int f2();

void stex(int m){x=m; cout<

void stey(int n){y=n; cout<

int getx(){return x;}

int gety(){return y;}

private:

int x,y;

};

int A::f1(){return x+y;}

int A::f2(){return x-y;}

void main()

{ A a;

a.setx(10); a.sety(5);

cout<

cout<

}

运行结果:

10

5

10 5

15 5

Press any key to continue

相关文档
最新文档