下列程序的输出结果为-5/8 -3/4,请将横线处的缺失部分补充完整。 #include<iostream> using namespace std; Class Fraction//"分数"类 public: Fraction(double a,double b):num(a),den(b) ~Fraction() //重载取负运算符”-”,返回一个分数对象,其分子是原来分子的相反数。 Fraction operator-() ______ return f; void print()(cout<<num<<’/’<<den<<’’; private: double num;//分子 double den;//分母 ; int main() Fraction f1(5,8),f2(3,4); (-f1).print();(-f2).print();
举一反三
- 下面是实现类fraction(分数)的定义的测试程序,其中重载运算符[<以分数形式给出结果。例如将三分之二输出为2/3。 #include< ][br][/br] class fraction{[br][/br] int den, num; public: fraction( int y, int x ) { den=y; num=x; } ostream &operator<<(ostream &s,fraction fr); }; ostream &operator<<(ostream &s,fraction fr) {s<<fr.den<<'/'<<fr.num; return ; } void main() { fraction f(2,3); cout<<f<<endl; }
- 下面是实现类fraction(分数)的定义的测试程序,其中重载运算符<<以分数形式给出结果。例如将三分之二输出为2/3。 #include [1] class fraction{ int den,num; public: fraction( int y, int x ) { den=y; num=x; }; [2] ostream &operator<<(ostream &s,fraction fr); }; ostream &operator<<(ostream &s,fraction fr) { s<<fr.den<<'/'<<fr.num; return [3] ; } void main() { fraction f(2,3); cout<<f<<endl; }
- 已知一个分数类Fraction,成员由分子和分母构成,在Fraction类中编写一个方法,实现分数对象之间的相加,下列哪个方法定义是符合 A: +(int)add:(int)n:(int)d B: +(Fraction*)add:(int)n:(int)d C: -(int)add:(Fraction*)f D: –(Fraction*)add:(Fraction*)f
- 创建一个Fraction类执行分数运算,要求如下: 包含两个double类型的私有成员变量,f1(分子),f2(分母); 提供两个构造函数,一个是无参构造函数(初始化分子分母为1.0),另外一个构造函数时Fraction(double f1, double f2),用来初始化f1和f2; 提供浮点数的形式输出分数的方法printF1; 提供以a/b的形式输出人数的方法printF2; 提供两个分数相加add,减subtract,乘mulptiply,除divide的公有方法; 编写Fraction的子类FractionSub,重写父类的无参构造函数,初始化分子为2,分母为3,并以a/b形式输出分数。 编写测试类FractionTest测试分数类中的各公有方法,测试FractionSub类中的无参构造函数。
- 以下程序执行后的输出为: #include double f1(double x) { return 1.0/x;} double f2(double x) { return x*x;} int main() { int i=3; double (*f[2])(double)={f1,f2}; cout<