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

word完美格式

5.3简答题

A、友元的特点

B、运算符重载的含义 C、运算符重载的限制

5.4读程序题

1、 写出下列程序的运行结果。 #include class Rect {

public:

Rect(int l,int w){length=l;width=w;}

void Print(){cout<<\

Rect operator *(int d){return Rect(length*d, width * d);} private:

int length,width; };

void main() {

Rect p(5,4), m(0,0); m = p * 4; m.Print(); }

答案: Area:320

2、 写出下列程序的运行结果。 #include class Vector {

public:

Vector(){}

Vector(int i,int j){x=i;y=j;}

friend Vector operator +=(Vector v1,Vector v2) {

v1.x+=v2.x; v1.y+=v2.y; return v1; }

精心整理 学习帮手

word完美格式

Vector operator -=(Vector v) {

Vector temp; temp.x=x-v.x; temp.y=y-v.y; return temp; }

void display(){cout<<\private: int x,y; };

void main() {

Vector v1(1,2),v2(3,4),v3,v4; v3=v1+=v2; v4=v1-=v2; cout<<\ v1.display(); cout<<\ v2.display(); cout<<\ v3.display(); cout<<\ v4.display(); }

答案: v1=(1,2) v2=(3,4) v3=(4,6) v4=(-2,-2)

3、 写出下列程序的运行结果。 #include class Coord {

public:

Coord(int I=0,int j=0){x=I;y=j;}

void Print(){cout<<\ friend Coord operator++(Coord op);

friend Coord operator++(Coord &op, int ); private:

int x, y; };

精心整理 学习帮手

word完美格式

Coord operator++(Coord op) {

++op.x; ++op.y; return op; }

Coord operator++(Coord &op, int) {

++op.x; ++op.y; return op; }

void main() {

Coord obj(1,2), obj2(5,8); obj.Print(); ++obj; obj2++;

obj.Print(); obj2.Print(); }

答案: x=1,y=2 x=1,y=2 x=6,y=9

精心整理 学习帮手