首页 > 试题广场 >

回答问题

[问答题]

#include <iostream.h>

class B;

class A

{ public:

A(int i)

{ a=i; }

friend int F(A &f1,B &f2);

private:

int a;

};

class B

{ public:

B(int i) { b=i; }// (后续代码在右侧栏)

friend int F(A &f1,B &f2);

private:

int b;

};

int F(A &f1,B &f2)

{

return (f1.a+f2.b)* (f1.a-f2.b);

}

void main()

{

A n1(10);

B n2(8);

cout<<F(n1,n2)<<endl;

}

阅读上面的程序,简答以下4个问题:

写出程序的运行结果。


该程序中共有几个对象,分别属于哪个类? 为什么在程序的开头处通过语句class B; 对类B进行声明?


程序中的哪两条语句会分别调用AB的构造函数?写出这两个构造函数。

函数F是什么函数?它的作用是什么?

1.36
2. 2 个对象,n1属于类A,n2属于类B
因为在定义A时要用到类B的引用,而B的声明在A类之后。所以需要对类B进行提前引用声明;
3. A n1(10); 调用 A 的构造函数 A(int i) { a=i; }
B n2(8); 调用 B 的构造函数 B(int i) { b=i; }
4. F 本身是一个普通成员函数,但同时也是A类和B类的友元函数。实现两个类对象之间的平方差的计算。


发表于 2017-05-14 23:18:34 回复(0)