面向对象程序设计复习试题(答案) 下载本文

word完美格式

答案

x+z=0 y+z=0 x+z=40 y+z=50 x+z=40 y+z=50 x=10 y=20 x+z=0 y+z=0 x=0 y=0

3、 阅读下列程序,回答后面提出的问题。 #include class Vehicle {

public:

void SetColor(int c){color=c;}

virtual void Move(){cout<<\private:

int color; };

class Car :public Vehicle {

public:

void Move(){cout<<\};

class Bus :public Vehicle {

public:

void Move(){cout<<\};

class SportsCar:public Car { };

class Coupe :public Car {

public:

void Move(){cout<<\};

void main() {

Vehicle *vec; vec=new Car; vec->Move(); delete vec; vec=new Bus;

精心整理 学习帮手

word完美格式

vec->Move(); delete vec;

vec=new SportsCar; vec->Move(); delete vec; vec=new Coupe; vec->Move(); delete vec; }

答案: Carmoving. Bus moving. Carmoving. Coupe moving.

运算符重载

5.1选择题

友元运算符obj>obj2被C++编译器解释为(A )。 A)operator>(obj1,obj2) B)>(obj1,obj2)

C)obj2.operator>(obj1) D)obj1.oprator>(obj2)

下面对C++运算符的正确的描述是(D )。 A)只有类成员运算符 B)只有友元运算符

C)只有非成员和非友元运算符 D)上述三者都有

下列关于C++运算符函数的返回类型的描述中,错误的是(C)。 A)可以是类类型 B)可以是int类型 C)可以是void类型 D)可以是float类型

重载赋值操作符时,应声明为(C)函数。 A)友元 B)虚 C)成员 D)多态

在一个类中可以对一个操作符进行(D)重载。

精心整理 学习帮手

word完美格式

A)1种 B)2种以下 C)3种以下 D)多种

下列关于运算符重载的描述中,正确的是(D)。 A)运算符重载可以改变运算符的操作数的个数 B)运算符重载可以改变优先级 C)运算符重载可以改变结合性 D)运算符重载不可以改变语法结构

下列运算符中, (C)运算符在C++中不能重载。 A)= B)() C):: D)delete

下列运算符中, (A)运算符在C++中不能重载。 A〕?: B)[] C)new D)&&

在重载运算符函数时,下面(D)运算符必须重载为类成员函数形式。 A)+ B)- C)++ D)->

下列运算符不能用友元函数重载的是(B )。 A)+ B)= C)* D)<<

下面对友元的错误描述是(D )

A) 关键字friend用于声明友元 B) 一个类的成员函数可以是另一个类的友元

C) 友元函数访问对象的成员不受访问特性影响 D) 友元函数通过this指针访问对象成员 .如果类A被说明成类B的友元,则(C ) A)类A的成员即是类B的成员 B)类B的成员即是类A的成员

C)类A的成员函数可以访问类B的所有成员

D)类B的成员函数可以访问类A的所有成员

精心整理 学习帮手

word完美格式

.在C++中不能被重载的一组运算符是:(A)

A):: ?: . sizeof B)?: . sizeof ++ ->

C):: ?: new delete D)++ -- ?: sizeof

5.2填空题

1、要在类的对象上使用运算符,除了运算符__=__和__&__以外,其他的运算符都必须被重载。

2、 在C++中,只能重载为类的成员函数的运算符是___=__、__()__、__[ ]__、_->__。 3、 运算符()与运算符[]必须重载为__类的成员函数___。

4、 利用成员函数对二元运算符重载,其左操作数为__this指针指向的当前对象__,右操作数为__成员函数参数__。 5、 下列程序定义了一实部为mal,虚部为imag的复数类complex,并在类中重载了复数的+、-操作。请将下列程序补充完整。 Class Complex {

public:

Complex(double r=0.0,double I=0.O){__ real=r;imag=I;___} __Complex__operator +(Complex);

__friend Complex____operator -(Complex,Complex); private:

double real,imag; };

___Complex Complex::operator +(Complex c) {

return Complex(__real+c.real,imag+c.imag___); };

___Complex___operator -(Complex c1,Complex c2) {

return Complex(___c1.real-c2.real,c1.imag-c2.imag ____); }

6、 单目运算符作为类成员函数重载时__没有__的参数;双目运算符作为__类成员函数__重载时需声明其右操作数,作为_友元函数__重载时需声明全部操作数。 7、 重载运算符函数的函数名时使用关键字_ operator ___。

8、 重载的运算符仍然保持其原来的优先级、__结合性__和__语法结构__。 9、 为满足运算符+的可交换性,必须将其重载为_友元函数___。

10、 C++中不能重载的运算符有__.__、__* (取内容) __、__::__、__?:__和__size of__。 11、 设a和b是两个整型变量,a+b表示这两个变量的和:设c和d为浮点型变量,c+d也表示这两个变量的和。这里的运算符+具有不同的用途,这是__运算符重载___的例子。

精心整理 学习帮手