《C++Ⅱ》参考答案 (№ A03Ⅱa)
第 PAGE 2 页 共 NUMPAGES 2 页
计算机学院《C++Ⅱ》参考答案
===============================
一、
1.(每小题1分,共10 分)
(1) 私有成员函数;求两个整数的最大公因子。
(2) 私有成员函数;分数约简。
(3) 私有成员函数;小数转换为分数。
(4) 构造函数;参数为分子、分母形式。
(5) 重载构造函数;参数为小数形式。
(6) 析构函数;对象的释放清理。
(7) 公有成员函数;实现加法运算。
(8) 公有成员函数;以分数形式输出有理数。
(9) 类型转换函数;把分数形式的对象转换成小数。
(10) 友员函数;重载插入运算符(<
2.(每小题3分,共9分)
(11) maxcommonFactor(b,a%b) ;
(12) numerator=n ; denominator=d ;
(13) double(numerator)/double(denominator) ;
3.(每小题3分,共21分)
(14) 0
错误! 分母不能为0。有理数将置为0。
0/1
3/4
6/5
0.75
(15) friend Rational operator + (const Rational &t1,const Rational &t2);
(16) Rational operator + (const Rational &t1, const Rational &t2)
(17.a)构造函数2; (17.b)构造函数1;
(17.c)构造函数1; (17.d)构造函数2;
(18) Rational(const Rational& r) {numerator=r.numerator; denominator=r.denominator;}
(19.a)对象初始化 (19.b)程序运行时修改对象的数据
(20) 6.6,1.2
二、
1.(每小题3分,共18分)
(21) x=1
1
(22) x=1
3
(23) B(double px=2) { x=px; }
(24) B(const A& a) {x=a.getx( );}
(25) 在类B的public段声明 A::getx;
(26) double fetch(){return x*x;}
2. (每小题3分,共18分)
(27) [A ]=>1,1
[A ]=>2,2
[A ]=>3,3
[A ]=>1,1
(28) [A ]=>1,1
[B1]=>4
[B2]=>9
[C ]=>1,1/4/16
(29) [B2]=>4
(30) virtual void show( )=0;
(31) 类A的show函数改写成纯虚函数,具有纯虚函数的类A成为抽象类,而抽象类是不能建立对象的。原来的main函数中,有语句“A a;” 即对类A建立对象a,因此不能正常运行。
(32) A成为抽象类后,原main函数应删除对象a的有关语句,才能正常运行。例如,可改为:
B1 b1; B2 b2; C c;
A* p=&b1; p->show();
p=&b2; p->show();
p=&c; p->show();
三、
1.(每小题3分,共9分)
(33) typename T
(34) T& a,T& b
(35) T x; x=a; a=b; b=x;
2.(每小题3分,共9分)
(36) namespace std
(37) V[i]
(38) x>y
四、
(每小题3分,共6分)
(39) ios::out
(40) .close( )