分数类Fractor定义如下: class Fractor{ private: int fenmu,fenzi; }; 1、添加构造函数完成初始化 2、重载运算符==,判断两个分数是否相等 3、添加输出运算符<<,输出分数。例如:3/4

分数类Fractor定义如下: class Fractor{ private: int fenmu,fenzi; }; 1、添加构造函数完成初始化 2、重载运算符==,判断两个分数是否相等 3、添加输出运算符<<,输出分数。例如:3/4


参考答案和解析
<fstream>;friend;s

相关考题:

有如下的运算重载函数定义:Double operator+(int i, int k){return double(i+k);}但定义有错误,对这个错误的最准确的描述是______。A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的B.两个int 型参数的和应该是int 型,而这里将+的返回类型声明为doubleC.没有将运算符重载函数声明为某个类的友元D.C++已经提供了求两个int 型数据之和运算符+,不能再定义同样的运算符

使用VC6打开考生文件夹下的工程MyProj11。此工程包含一个源程序文件 MyMain11.cpp。程序中定义了3个类A、B和C,但类C的定义并不完整。请按要求完成下列操作,将类的定义补充完成:①类C是基类A和B公有派生来的。请在注释“//* *1* *”之后添加适当的语句。②完成构造函数C(int k)定义,采用初始化列表的方式使基类A私有成员a初始化为k-2,基类B的私有成员b初始化为k+2,类C的私有成员c初始化为k。请在注释“//* *2* *”之后添加适当的语句。③完成类Derived的成员函数disp()的类体外的定义。函数disp()中要分别显式调用基类A、B的disp()函数,然后要输出私有成员c的值。请在注释“//* *3* *”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain11.cpp清单如下;//MyMain11.cppinclude <iostream>using namespace std;class A{private:int a;public:A(int i) { a=i;}void disp(){cout<<a<<" , "}};class B{private:int b;public:B(int j){ b=j;}disp ( ){cout<<b<<", ";}};//* * *1* * *{private:int c;public://* * *2* * *void disp();};void c::disp(){//* * *3* * *}int main ( ){C obj(10);obj.disp();return 0;}

使用VC6打开考生文件夹下的工程test40_3。此工程包含一个test40_3.cpp,其中定义了类CVector,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)完成类CVector构造函数的定义,把传入的int型参数a和b分别赋值给类的成员变量x和y。请在注释“//**1**”之后添加适当的语句。(2)完成类CVector的“+”运算符重载函数的定义,使Cvector类的两个对象相加时可以直接使用符号“+”,并且结果仍然为类Cvector的对象,请在注释“//**2**”之后添加适当的语句。(3)在主函数中添加适当的语句,把类Cvector的对象a和b相加,并且把结果保存在对象c中,最后以“x,y”的形式输出在屏幕上,请在注释“//**3**”之后添加适当的语句。源程序文件test40_3.cpp清单如下:include <iostream.h>class CVector{public:int x,y;CVector () {};CVector (int,int);CVector operator + (CVector);};CVector::CVector (int a, int b){//**1**}CVector CVector::operator+ (CVector param){//**2**temp.y = y + param.y;return (temp);}int main (){CVector a (3,1);CVector b (1,2);CVector c;//**3**return 0;}

使用VC6打开考生文件夹下的工程test23_3,此工程包含一个源程序文件test23_3.cpp,其中定义了类X和它的友元类Y,但它们的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)将类X的静态数据成员y初始化为1。请在注释“//**1**”之后添加适当的语句。(2)完成类Y的构造函数Y(int i,int j)的定义,将参数i赋值给类Y的数据成员,X的对象a中的数据成员x,并且把参数j赋值给类X的数据成员y,请在注释“//**2**”之后添加适当的语句。(3)完成类Y的成员函数void Display()的定义,将Y的数据成员,X的对象a中的数据成员x和类X的数据成员y按照“x=_,y=_”的形式显示出来(“_”代表一个数字),请在注释“//**3**”之后添加适当的语句。输出结果如下:x=5,y=lx=6,y=9x=5,y=9注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test23_3.cpp清单如下:include<iostream.h>class X{friend class Y;public:void Set(int i) {x=i;}void Display(){cout<<"x="<<x<<",";cout<<"y="<<y<<endl;}private:int x;static int y;};class Y{public:Y(int i, int j)void Display();private:X a;};//**1**Y::Y(int i, int j){//**2**}void Y::Display(){//**3**}void main ( ){X b;b.Set(5);b.Display();Y c(6,9);c.Display();b.Display();}

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。 (1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。 (2)定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传人。请在注释“//********2********”之后添加适当的语句。 (3)定义类A2的构造函数,该构造函数有3个整型的参数x,y和z,在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//********3********”之后添加适当的语句。 (4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。 程序输出结果如下: 7 3 738 注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。 试题程序: includeiostream.h classA { inta; public: //********1******** intgeta{returna;} }; classA1:publicA { intb; public: //********2******** intgetb{returnb;} }; classA2:publicA1 { intC; public: //****,****3******** voidshow { //********4******** } }; voidmain { A2a(8.3.7): couta.getaendl: couta.getbendl: a.show; }

( 13 )在有理数类 Rational 中重载插入运算符 ,以便按 a/q 形式输出。请将 运算符函数的定义补充完整。class Rational{public:Rational(int aa, int qq):a(aa),q(qq){ }friend 【 14 】 operator(ostream out, Rational x){return (outx.a ' / ' x.q);}private:int a,q;};

使用VC6打开考生文件夹下的工程MyProj7。此工程包含一个源程序文件MyMain7.cpp。其中定义了类Sample,但类Sample的定义并不完整。请按要求完成下列操作,将类Sample的定义补充完成:①定义私有数据成员n,它是int型的数据。请在注释“//* *1**”之后添加适当的语句。②完成重载构造函数Sample()的定义,使Sample对象的默认值:n=0。请在注释“//* *2* *”之后添加适当的语句。③完成成员函数add()的类体内的定义,使成员函数返回的Sample对象的值n为两类Sample对象s1和s2的私有成员n的和。请在注释“//* *3* *”之后添加适当的语句。④完成成员函数disp()的类外定义,使其以“n=”的格式将Sample对象的值输出到屏幕上。请在注释“* *4* *”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain7.cpp清单如下://MyMain7.cppinclude<iostream>using namespace std;class Sample{private://* * 1* *public:Sample(){}//* *2* *Sample add(Sample s1,Sample s2){//* *3* *}void disp();};void Sample: :disp(){//* * 4 * *}int main(){Sample s1(10),s2(5),s3;cout<<"s1:";s1.disp();cout<<"\n S2:";s2,disp();s3.add(s1,S2);cout<<"\n s3.add(s1,s2)\n s3:";s3.disp();return 0;}

使用VC6打开考生文件夹下的工程test8_3,此工程包含一个源程序文件test8_3.cpp,该文件设计了用于输出乘法九九表的类。请认真阅读已有的代码,按要求完成下列操作,将程序补充完整。(1)定义类Table的私有数据成员x和y,分别用于表示九九表中的两个乘数(x*y),它们都是int型的数据。请在注释“//**1**”之后添加适当的语句;(2)完成类Table的成员函数prin()的定义,该函数以“x*y=z”的格式打印出九九表中的一个乘法算式,请使用格式化输出函数prinff实现,在注释“//**2**”之后添加适当的语句;(3)完成类Table9的成员函数print()的定义,该函数调用基类Table的print()函数,将九九表输出到屏幕,请在注释“//**3**”之后添加适当的语句;(4)补充主函数,在屏幕上输出九九表,以便测试所定义的类的正确性。请在注释“//**4**”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test8_3.cpp清单如下:include<iostream.h>include<stdio.h>class Table{//**1**int z;public:void print(int x,int y,int z);};void Table::print(int x,int y,int z){//**2**}class Table9:public Table{public:void print();};void Table9::print(){//**3**int x,y,z;for (i=1;i<1O;i++){for(j=1;j<i+1;j++){x=i;y=j;z=i*j;Table::print(y,x,z);}printf("\n");}}main(){//+*4**return 0;}

使用VC6打开考生文件夹下的工程test37_3。此工程包含一个test37_3.cpp,其中定义了类Letter和Number以及Grid,其中Grid类由Letter类和Number类public派生,但三个类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)添加类Letter的带一个参数c的构造函数,c是char型的数据,默认值为'A',该函数把参数c的值赋给类的保护成员ch,请在注释“//**1**”之后添加适当的语句。(2)添加类Number的带一个参数n的构造函数,n是int型的数据,默认值为0,该函数把参数n的值赋给类的保护成员num,请在注释“//**2**”之后添加适当的语句。(3)添加派生类Grid构造函数的定义,传入的参数为char型的c和血型的n,并将其分别赋值给基类的ch和num,请在注释“//**3**”之后添加适当的语句。(4)完成派生类Grid的友元函数——“<<”运算符重载的定义,使其以格式“[g.ch,g.num]”输出,请在注释“//**4 **”之后添加适当的语句。源程序文件test37_3.cpp清单如下:include<iost ream. h>class Letter{protected:char ch;public:// ** 1 **};class Number{protected:int num;public:// ** 2 **};class Grid : public Letter, public Number{public:// ** 3 **friend ostream operator<<(ostream o,Grid g);};// ** 4 **{o << "[" << g.ch << ", "<< g.num << "]";return o;}int main ( ){Grid g('C', 3);cout << "Grid reference: "<< g << end1;return 0;}

使用VC6打开考生文件夹下的工程test30_3。此工程包含一个test30_3.cpp,其中定义了类A、A1和A2,其中A1类由 A类公有派生,A2类由A1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。(1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//** 1**”之后添加适当的语句。(2)定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传入。请在注释“//**2**”之后添加适当的语句。(3)定义类A2的构造函数,该构造函数有三个整型的参数x,y和2,在构造函数中请将x赋值给数据成员c,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//**3**”之后添加适当的语句。(4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员c的值,上述三个值在输出时以空格隔开。请在注释“//**4**”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。程序输出结果如下:96962源程序文件test30_3.cpp清单如下:include <iostream.h>class A{int a;public://** 1 **int geta() {return a;}};class A1:public A{int b;public://** 2 **int getb() {return b;}};class A2:public A1{int c;public://** 3 **void show(){//** 4 **}};void main(){A2 a(2,6,9);cout<<a.geta ( ) <<end1;cout<<a, getb ( ) <<end1;a. show( );}

使用VC6打开考生文件夹下的工程test17_3,此工程包含一个源程序文件test17_3.cpp,其中定义了用于表示点的类Point和表示内容的类Text以及二者的派生类CircleWithText,但它们的定义并不完整。请按要求完成下列操作,将它们的定义补充完整。(1)定义类Point的构造函数,请使用参数列表的形式将成员函数x和y分别初始化为参数x1和y1的值。请在注释“//**1**。”之后添加适当的语句。(2)完成类Text的构造函数Text(char *str)的定义,将char型的str指向的内容赋值给text并且输出str所指向的内容,请在注释“//**2**”之后添加适当的语句。(3)定义类CircleWithText的构造函数CircleWithText(int cx,int cy,char *msg),int型的cx和cy用于赋值给x和y,char型的指针*msg用于赋值给text,请在注释“//**3**”之后添加适当的语句。输出结果如下:Point:3 4hello注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test17_3.cpp清单如下:include <iostream.h>include <string.h>class Point{int x,y;public://**1**{cout<<"Point:"<<x<<' '<<y<<'\n';}~Point(){}};class Text{char text[100];public:Text(char *str){//**2**}~Text () { }};class CircleWithText:public Point,public Text{public://**3**{}~CircleWithText() {}};void main(){CircleWithText cm(3,4,"hello");}

使用VC6打开考生文件夹下的工程test13_3。此工程包含一个test13_.cpp,其中定义了类Vector,但类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)完成构造函数的定义,把数据成员size初始化为参数s的值,数据成员buffer指向动态申请的int型size大小的空间。请在注释“//**1**”之后添加适当的语句。(2)完成拷贝构造函数的定义,注意解决多次删除的问题。请在注释“//**2**”之后添加适当的语句。(3)完成成员函数elem的定义,该函数返回buffer的第ndx个元素的值,注意如果ndx超界,请输出“error in index”。请在注释“//**3**”之后添加适当的语句。(4)完成析构函数的定义,要求先将字符d打印在屏幕上,再释放buffer指向的空间。请在注释“//**4**”之后添加适当的语句。输出结果如下:1234567891012345678910dd注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。源程序文件test13_3清单如下:include<iostream.h>include<stdlib.h>class Vector{public:Vector(int s=100);Vector(Vector v);int elem(int ndx);void display();void set();~Vector();protected:int size;int *buffer;};Vector::Vector(int s){// ** 1 **}Vector::Vector(Vector v){// ** 2 **for(int i=0; i<size; i++){*(buffer+i)=*(v.buffer+i);}}int Vector::elem(int ndx){// ** 3 **{cout<<"error in index"<<endl;exit(1);}return buffer[ndx];}void Vector::display(){for(int j=0;j<size;j++)cout<<elem(i)<<endl;}void Vector::set(){for(int j=0;i<size;j++)elem(j)=j+1;}Vector::~Vector(){// ** 4 **}void main(){Vector a(10);Vector b(a);a. set();b. set();a. display();b. display();}

使用VC6打开考生文件夹下的工程test12_3,此工程包含一个test12_3.cpp,其中定义了类Base和类A,类A公有继承 Base,但这两个类的定义都并不完整。请按要求完成下列操作,将程序补充完整。(1)定义枚举类型变量en,它包含两个枚举符front和back,请在注释“//**1**”之后添加适当的语句。(2)在类Base中添加常成员虚函数void E()的定义,该函数输出“In Base E!”,请在注释“//**2**”之后添加适当的语句。(3)在类A中添加常成员虚函数void E()的定义,该函数先调用基类中的虚函数 E()再输出“In AE!”,请在注释“//** 3**”之后添加适当的语句。(4)完成类A构造函数的定义,请使用参数列表的形式初始化类A的成员,并输出“A constructor.”,请在注释“//** 4**”之后添加适当的语句。输出结果如下:Base constructor.A constructor.In BaseE!In AE!In BaseP!In A!1A destructor.Base destructor.注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。源程序文件test12_3.cpp清单如下:include<iostream .h>// ** 1 **class Base{protected:int b1;int b2;public:Base();~Base();int Getb1()const { return b1; }void Setb1(int x){ b1 = x; }int Getb2()const { return b2; }void Setb2(int y) { b2 = y; }void Print()const {cout<<"In Base P!"<<end1;}// ** 2 **};Base::Base():b1(1),b2(5){cout<<"Base constructor."<<endl;}Base::~Base(){cout<<"Base destructor."<<endl;}class A:public Base{protected:en enA;public:A();~A();en GetColor()const { return enA; }void SetColor(en color){ enA = color; }void InA(){cout<<"In A!"<<endl;}// ** 3 **{Base::E();cout<<"In AE!"<<endl;}};// ** 4 **{cout<<"A constructor."<<endl;}A::~A(){cout<<"A destructor."<<endl;}void main(){A a1;a1.E();cout<<endl;a1.Print();a1.InA();cout<<a1.Getbl()<<endl;}

使用VC6打开考生文件夹下的工程test29_3。此工程包含一个test29_3.cpp,其中定义了二维坐标类Coordinate和三维坐标类ThreeDCoord,其中ThreeDCoord类由Coordinate类public派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)定义类Coordinate的保护数据成员x和y,它们都是int型的数据,代表二维坐标的横纵坐标值。请在注释“//**1 **”之后添加适当的语句。(2)根据类Coordinate定义后的成员函数Display的实现,补充该函数在类Coordinate定义体内的声明,Display为二维坐标类的虚函数。请在注释“//**2**。”之后添加适当的语句。(3)完成二维坐标类Coordinate的构造函数,将参数a和b分别赋值给数据成员x和y。请在注释“//**3**”之后添加适当的语句。(4)根据ThreeDCoord类构造函数的声明,补充ThreeDCoord构造函数的实现,参数a和b通过调用基类的构造函数来初始化基类的数据成员x和y,c赋值给数据成员2。请在注释“//**4**”之后添加适当的语句。输出结果如下;[1,2][3,4,5]注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件tese9_3.cpp清单如下:include<iostream.h>class Coordinate{protected://** 1 **public:Coordinate(int a=0, int b=0);//** 2 **};Coordinate::Coordinate(int a, int b){//** 3 **}void Coordinate::Display() const{cout << '[' << x << ", "<< y << ']' << end1;}class ThreeDCoord:public Coordinate{int z;public:ThreeDCoord(int a=0, int b=0, int c=0);virtual void Display() const;};//** 4 **void ThreeDCoord::Display() const{cout << '[' << x << ", "<< y << ", "<< z << ']' << end1;}void main ( ){Coordinate c(1, 2);ThreeDCoord t(3, 4, 5);c.Display ();t.Display ();}

使用VC6打开考生文件夹下的工程test33_3。此工程包含一个test33_3.cpp,其中定义了表示时间的类Time,但Time类定义并不完整。请按要求完成下列操作,将程序补充完整。(1)定义类Time的私有数据成员hours、minutes和seconds,它们都是int型的数据,分别表示时间的小时、分和秒。请在注释“//**1**”之后添加适当的语句。(2)完成类Time缺省构造函数的定义,该函数将数据成员hours、minutes和seconds的值初始化为0,请在注释“//** 2**”之后添加适当的语句。(3)完成类Time带参构造函数的定义,该函数将数据成员hours、minutes和seconds的值分别初始化为参数h、m和s的值,请在注释“//**3**”之后添加适当的语句。(4)完成类Time中运算符“+”的重载,注意小时、分和秒在相加时的进位问题。请在注释“//**4**”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。程序输出结果如下:8:17:11源程序文件test33_3.cpp清单如下:include <iostream.h>class Time{//** 1 **public:Time ( ){//** 2 **seconds=0;}Time(int h, int m, int s){//** 3 **minutes=m;seconds=s;}Time operator +(Time);void gettime();};Time Time::operator +(Time time){//** 4 **s=time.seconds+seconds;m=time.minutes+minutes+s/60;h=time.hours+hours+m/60;Time result(h,m%60,s%60);return result;}void Time::gettime(){cout<<hours<<":"<<minutes<<":"<<seconds<<end1;}void main( ){Time t1(3,20,15),t2(4,56,56),t3;t3=t1+t2;t3.gettime();}

使用VC6打开考生文件夹下的工程MyProj1。此工程包含千个源程序文件 MyMainl.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成:①定义私有数据成员year、month和day分别用于表示年、月、日,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。②完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1, day=1,请在注释“//**2**”之后添加适当的语句。③完成重载构造函数Date(int y, int m, int d)的定义,把数据成员year、month和day分别初始化为参数y、m和d的值,请在注释“//**3**”之后添加适当的语句。④完成成员函数print的类外定义,使其以“年-月-日”的格式将Date对象的值输出到屏幕上。请在注释“//**4**”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain1.cpp清单如下://MyMainl. cppinclude <iostream>using namespace std;class Date{public://* * 2 * *Date(int y, int m, int d){//* * 3 * *}void print() const;private://data member//* * 1 * *};void Date: :print () const{//* * 4 * *}int main ( ){Date national_day(1949,10,1);national_day.print();return 0;}

使用VC6打开考生文件夹下的工程MyProj15。此工程包含一个源程序文件MyMain15.cpp。程序中定义了3个类A、B和C,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:①类Inherit是类Base的公有派生类。请在注释“//* *1* *”之后添加适当的语句。②完成类Inherit成员函数setvalue(int a,int b,int c,int d)的定义,此函数实现的功能是将基类成员x、y、z和派生类的数据成员m的值分别设置成a、b、c和d。请在注释“//* *2* *”之后添加适当的语句。③完成类Inherit成员函数display()的类体外定义,此函数实现的功能是以“,,,,”的格式将x、y、z和m的值输出到屏幕上。请在注释“//* *3* *”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain15.cpp清单如下://Mymain15.cppinclude<iostream>using namespace std;class Base{private:int x;protected:int y;public:int z;void setx(int i){x=i;}int getx()const{return x;}};//* * *1* * *{private:int m;public:void setvalue(int a,int b,int c,int d){//* * *2* * *}void display()const;};//* * *3* * *int main(){Inherit A;A.setvalue(1,2,3,4);A.display();return 0;}

下列程序的输出是3,请填充程序中的空缺,使该行形成一个运算符重载函数的定义。includeiostreamusing namespace std;class MyNumber{Int n;public:MyNumber(int k):n(k){}【 】 int()const{return n;}};int main(){MyNumber numl(3);coutint(numl);return 0;}

有如下的运算符重载函数定义:double operator+(int i,int k){return double(i+k);}但定义有错误,对这个错误最准确的描述是( )。A.#NAME?B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为doubleC.没有将运算符重载函数声明为某个类的友元D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符

使用VC6打开考生文件夹下的工程test35_3。此工程包含一个test35_3.cpp,其中定义了时钟类clock,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)定义类clock的私有数据成员hour和minute,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。(2)补充完全类clock的构造函数,私有数据成员hour和minute分别初始化为参数h和m的值,请在注释“//**2**”之后添加适当的语句。(3)完成类clock的成员函数printtime,的定义,该函数以“Now the time is hour:minute”的格式输出数据成员hour和 minute的值,如hour=3、minute=59,则输出为“Now the time is 03:59”,请在注释“//**3**”之后添加适当的语句。(4)完成类clock的成员函数addoneminutetime的定义,该函数可将clock类对象表示的时间加一分钟,如现在hour=3、 minute=59,运行该函数后hour=4、minute=0。请在注释“//**4**”之后添加适当的语句。程序的输出结果如下:Now,the time is 12:59Now,the time is 13:00注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test35_3.cpp清单如下:include<iostream.h>class clock{private:// ** 1 **public:clock(int h, int m){// ** 2 **}int presenthour(){return hour;}int presentminute(){return minute;}void addoneminutetime();void printtime();};void clock::printtime(){if(hour<10) cout<<'0';// ** 3 **if(minute<10) cout<<'0';cout<<minute<<end1;}void clock::addoneminutetime(){// ** 4 **if(minute>59){minute-=60;hour++;}if(hour>23)hour=0;}void main ( ){clock c(12,59);c.printtime();c.addoneminutetime();c.printtime();}

有如下的运算符重载函数定义: double operator+(inti,intk){return double(i+k);} 但定义有错误,对这个错误最准确的描述是( )。A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为doubleC.没有将运算符重载函数声明为某个类的友元D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符

使用VC6打开考生文件夹下的工程test15_3。此工程包含一个test15_3.cpp,其中定义了类Time和Timex,Timex公有继承Time,但定义并不完整。请按要求完成下列操作,将程序补充完整。(1)完成类Time构造函数的定义,将数据成员hours和minutes分别初始化为参数new_hours和new_minutes的值。请在注释“//**1**”之后添加适当的语句。(2)完成类Timex的构造函数的定义,注意参数的传递。请在注释“//**2**”之后添加适当的语句。(3)请按时间格式“hour:minute”和“hour:minute:second”分别输出对象time1和time2所表示的时间,注意必须使用已经定义的成员函数。请在注释“//**3**”之后添加适当的语句。输出结果如下:20:3010:45:34注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。源程序文件test15_3.cpp清单如下:include<iostream.h>class Time{public:Time(int new hours,int new_minutes){// ** 1 **}int get_hours();int get_minutes();protected:int hours,minutes;};int Time::get_hours(){return hours;}int Time::get_minutes(){return minutes;}class Timex:public Time{public:Timex(int new hours,int new_minutes,int new_seconds);int get_seconds();protected:int seconds;};// ** 2 **{seconds=new_seconds;}int Timex::get_seconds(){return seconds;}void main(){Time time1(20,30);Timex time2(10,45,34);// ** 3 **}

使用VC6打开考生文件夹下的工程MyProj12。此工程包含一个源程序文件MyMain12.cpp。程序中定义了两个类Base和Derived,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:①类Derived是基类Base公有派生来的。请在注释“//* *1* *”之后添加适当的语句。②完成构造函数Derived(int x)定义,采用初始化列表的方式使基类Base私有成员a初始化为x,类Derived的私有成员b初始化为x+1。请在注释“//* *2* *”之后添加适当的语句。③完成类Derived的成员函数show()的类体外的定义。函数show()中要输出基类数据成员a的值,然后要输出私有成员b的值。请在注释“//* *3* *之后添加适当的语句。注意;除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain12.cpp清单如下://MyMain12.cppinclude<iostream>using namespace std;class Base{public:int a;Base(int i){a=i;}};//* * * 1 * * *{private:int b;public://* * * 2 * * *void show();};void Derived::show(){//* * * 3 * * *}int main(){Derived d(1);d.show();return 0;}

使用VC6打开考生文件夹下的工程test38_3。此工程包含一个test38_3.cpp,其中定义了类complex,但类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)添加类complex的无参数的构造函数的定义,将私有成员real和imag都初始化为0。请在注释“//**1**”之后添加适当的语句。(2)添加类complex的带两个参数的重载构造函数,两个参数r和i都是double类型,要求将r赋值给私有成员real, i赋值给私有成员imag,同时允许调用时参数i可是省略,请在注释“//**2**”之后添加适当的语句。(3)完成类complex重载加法函数的定义,该函数直接返回一个类complex的对象,同时把参数对象c的实部real和虚部imag分别与当前对象对应部分分别相加,请在注释“//**3**”之后添加适当的语句。(4)完成类complex的友元函数print的定义,使其以格式“real+imagi”输出,请在注释“//**4**”之后添加适当的语句。源程序文件test38_3.cpp清单如下;include <iostream.h>class complex{public:// ** 1 **// ** 2 **{real=r;imag=i;}complex operator+(complex c);friend void print(complex c);private:double real,imag;};complex complex::operator+(complex c){// ** 3 **}// ** 4 **cout<<c.real<<"+"<<c.imag<<"i"<<endl;}void main( ){complex c1(2.0,3.0),c2(4.0,-2.0),c3;c3=c1+c2;print(c3);c3=c3+complex(3.5);print(c3);}

使用VC6打开考生文件夹下的工程MyProj10。此工程包含一个源程序文件MyMain10.cpp。程序中定义了两个类Base和Derived,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:①类Derived是基类Base公有派生来的。请在注释“//* *1* *”之后添加适当的语句。②完成构造函数Derived(int i)定义,采用初始化列表的方式使基类Base私有成员a初始化为i+1,类Derived的私有成员b初始化为i。请在注释“//* *2* *”之后添加适当的语句。③完成类Derived的成员函数show()的类体外的定义。函数show()中要显式调用基类的show()函数,然后要输出私有成员b的值。请在注释“//* *3**”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain10.cpp清单如下://MyMain10.cppinclude<iostream>using namespace std;class Base{public:Base(int x){a=x}void show(){cout<<a;}private:int a;};//* * *1* * *{public://* * * 2 * * *void show();private:int b;};void Derived :: show(){//* * * 3 * * *}int main(){Derived d(1), *pb;pb=d;pb->show();return 0;}

有如下的运算符重载函数定义:double operator+(int i,int k){return double (i+ k);}但定义有错误,对这个错误最准确的描述是( )。A.“+”只能作为成员函数重载,而这里的“+”是作为非成员函数重载的B.两个int型参数的和也应该是int型,而这里将“+”的返回类型声明为doubleC.没有将运算符重载函数声明为某个类的友元D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符

使用VC6打开考生文件夹下的工程test16_3,此工程(1)定义类Cat 的保护数据成员itsAge用于表示年龄,它是int型的数据。请在注释“//**1**”之后添加适当的语句。(2)定义类Cat的保护数据成员GetAge()的类外定义,返回成员的itsAge值,请在注释“//**2**”之后添加适当的语句。(3)完成成员函数SetAge(int age)的类外定义,把数据成员itsAge赋值为参数age的值,请在注释“//**3**”之后添加适当的语句。(4)完成成员函数Meow的类外定义,使其输出字节符串“meow.”到屏幕上。请在注释“**4**”后添加适当的语句。输出结果如下:meow.kitty is a cat who is 5 years old.meow.注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件testll3.cpp清单如下:include<iostream.h>class Cat{public:int GetAge();void SetAge(int age);void Meow();protected://**1**};int Cat::GetAge(){//**2**}void Cat::SetAge(int age){//**3**}void Cat: :Meow(){//**4**}void main ( ){Cat kitty;kitty.Meow();kitty. SetAge(5);cout<<"kitty is a cat who is ";cout<<kitty.GetAge();cout<<" years old.\n";kitty. Meow();}

问答题用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了多个类,但类不能达到输出要求,按照定义的输出修改函数,使得输出如下:  TestClass3  TestClass2  TestClass1  其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。  1.类TestClass2公共继承于TestClass1,请在注释∥********1********后添加适当的语句。  2.print函数为虚函数,请在注释∥********2********后添加适当的语句。  3.修改语句,使得p指定对象obj3,请在注释∥********3********后添加适当的语句。  4.修改语句,利用p调用print()函数,完成输出信息,注释∥********4********后添加适当的语句。  注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。    使用VC6打开考生文件夹下的源程序文件modi3.cpp。程序通过继承关系,实现对姓名的控制。类TestClass1实现对名字访问的接口,TestClass2实现对名字的设置和输出。  程序输出为:  TestClass2Name  May  其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。  1.在类TestClass1中定义接口函数GetName()为纯虚函数。请在注释∥********1********后添加适当的语句。  2.函数GetName2()实现获得名字的缓存,但是只获得读允许操作这个缓存,请在注释∥********2********后添加适当的语句。  3.实现TestClass2的构造函数,请在注释∥********3********后添加适当的语句。  4.完成TestClass2的构造函数,实现对名字的处理。请在注释∥********4********后添加适当的语句。  注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。