从上题中的Pair类中派生出一个分数类Fractor; class Fractor:public Pair { }; 其中,first充当分子,second充当分母。 1、定义成员函数,检查分母不能为0问题。使得能正确完成分数对象的初始化。5分 2、添加成员函数,完成分数化简,例如:4/8应化简为1/2。 10分

从上题中的Pair类中派生出一个分数类Fractor; class Fractor:public Pair { }; 其中,first充当分子,second充当分母。 1、定义成员函数,检查分母不能为0问题。使得能正确完成分数对象的初始化。5分 2、添加成员函数,完成分数化简,例如:4/8应化简为1/2。 10分


参考答案和解析
A

相关考题:

下面的说法对吗?(1)分数的分母越大,它的分数单位就越小。()(2)分数都比整数小。()(3)假分数的分子都比分母大。 ()(4)如果b是a的2倍(a≠0),那么a、b的最大公因数是a,最小公倍数是b。()(5)分子和分母的公因数只有1的分数是最简分数。()

使用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;}

使用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; }

( 33 )有如下程序:#includeiostreamusing namespace std;class Pair{int m;int n;public:Pair ( int i , int j ) : m ( i ) , n ( j ) {}boot operator ( pair p ) const; // 须在类体外给出定义} ;int main () {Pair Al ( 3,4 ) , p2 ( 4,3 ) ; p3 ( 4,5 ) ;Cout ( plp2 ) ( P2P1 ) ( p2p3 ) ( p3p2 ) ;return 0;}运算符函数 。 operator 的功能是比较两个 Pair 对象的大小 , 当左边对象大时 , 返回 true , 否则返 回false 。 比较规则是首先比较两对象的 m 成员 , m 大者为大 ; 当 m 相等时比较 n , n 大者为大 。 程序输出 0101 ,下列对运算符重载函数的正确定义是A ) bool Pair::operator ( Pair p ) const{if ( m!=p.m ) return mp.m; return np.n;}B ) bool Pair:;operator ( Pair p ){if ( m!=p.m ) return mp.m; return np.n;}C ) bool Pair::operator ( Pair p ) const{if ( mp.m ) return true; return np.n;}D ) bool Pair:;operator ( Pair p ){if ( mp.m ) return true; return np.n;}

使用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;}

应添加“intseta(intx)”。 (2)应添加“classTC3:publicTC1,privateTC2”。 (3)应添加“intC;”。 (4)应添加“seta(x);”。 【解析】本题第1处要求“完成类TCl的成员函数seta定义,定义seta对象X为int类型”。类的成员函数是函数的一种,它与一般函数的区别是,它是一个类的成员,出现在类体中。所以类TCl中的成员函数,就是在TCl中定义题目中要求的参数为intx的seta函数,即“intseta(intx)”。第2处要求“完成类TCl(公有)和类TC2(私有)派生类TC3的定义”。从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为“class派生类名;[继承方式]基类名”。根据声明派生类的一般形式,这里补全“class TC3:publicTC1,privateTC2”。第3处要求“定义类TC3中的私有成员C为int”。在类TC3中的private数据成员区域,定义intC,印在第3处补全“intC;”。第4处要求“完成setc中对基类的变量a的赋值”。基类为TCl,setc对于该类a的赋值,是intseta(intx)函数的赋值,即“seta(x);”

使用VC6打开考生文件夹下的工程test42_3。此工程包含—个test42_3.cpp,其中定义了类Cpolygon、COutput和CTriangle,其中CTriangle类由Cpolygon和COutput类public派生,但三个类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)定义类CPolygon的保护数据成员width和height,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。(2)完成类CPolygon的成员函数set_values(int a,int b),使参数a和b分别赋值给保护数据成员width和height,请在注释“//**2**”之后添加适当的语句。(3)完成类Coutput的成员函数output(int)的定义,将传入的参数为血型的i输出到屏幕并换行,请在注释“//**3**”之后添加适当的语句。(4)完成派生类CTriangle的声明,它由Cpolygon和COutput类public派生,请在注释“//**4**”之后添加适当的语句。源程序文件test42_3.cpp清单如下:include <iostream.h>class CPolygon{protected:// ** 1 **public:void set_values(int a, int b){// ** 2 **}};class COutput{public:void output(int i);};void COutput::output(int i){// ** 3 **}// ** 4 **{public:int area (void){return (width * height / 2);}}int main (){CTriangle trgl;trgl.set_values (4,5);trgl.output (trgl.area());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打开考生文件夹下的工程test24_3,此工程包含一个源程序文件test24_3.cpp,其中定义了抽象类point和它的派生类line,但它们的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)定义类point的构造函数,函数含参数i和j它们都是int型数据,默认值都是0,用i和j分别将point的数据成员x0和y0初始化。请在注释“//**1**”之后添加适当的语句。(2)完成类point的成员函数纯虚函数void set()和void draw()的定义,请在注释“//**2**”之后添加适当的语句。(3)添加类line的构造函数,函数含参数i,j,m和n,它们都是int型数据,默认值都是0,用i和j分别将point的数据成员x0和y0初始化。请在注释“//**3**”之后添加适当的语句。输出结果如下:line::set()called.注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test24_3.cpp清单如下:include<iostream.h>class point{public://**1**//**2**protected:int xO,yO;}class line: public point{public://**3**{x1=m;y1=n;}void set(){ cout<<"line::set() called.\n"; }void draw(){ cout<<"line::draw() called.\n"; }protected:int x1,y1;};void main(){line *lineobj = new line;1ineobj->set();}

使用VC6打开考生文件夹下的工程MyProj13。此工程包含一个源程序文件MyMain12.cpp。程序中定义了两个类Base和Derived,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:①定义类shapes的保护成员x和y,它们都是整型变量。请在注释“//* *1* *”之后添加适当的语句。②完成构造函数shapes(int d,int w)定义,使类shapes的保护成员x、y分别初始化为d、w,并分别具有默认值0、0。请在注释“//* *2* *”之后添加适当的语句。③完成类shapes的成员函数setvalue(int d,int w)的定义,shapes类的数据成员x和y分别被设置成d和w。请在注释“//* *3* *”之后添加适当的语句。④将类shapes的成员函数void disp()设置成纯虚函数。请在注释“//* *4* *”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain13.cpp清单如下://MyMain13.cppinclude<iostream>using namespace std;class shapes{//* * *1* * *public://* * *2* * *void setvalue(int d,int w){//* * *3* * *}//* * * 4 * * *};class square : public Shapes{public:void disp(){cout<<x*y<<end1;}};int main(){shapes*ptr;square s1;ptr=s1;ptr->setvalue(10,5);ptr->disp();return 0;}

使用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打开考生文件夹下的工程MyProj2。此工程包含一个源程序文件 MyMain2.cpp,此程序的运行结果为:Derive1's Print() Called.Derive2's Print() called.其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。①定义函数Print()为无值型纯虚函数。请在注释“//**1**”之后添加适当的语句。②建立类Derivel的构造函数,请在注释“//**2**”之后添加适当的语句。③完成类Derive2成员函数Print()的定义。请在注释“//**3**”之后添加适当的语句。④定义类Derivel的对象指针d1,类Derive2的对象指针d2。其初始化值分别为1和2。源程序文件MyMain2.cpp中的程序清单如下://MyMain2. cppinclude <iostream>using namespace std;class Base{public:Base(int i){b=i;}//* * 1 * *protected:int b;};class Derivel: public Base{public://* * 2 * *void print (){cout<<" Derivel's Print() called."<<end1;}};class Derive2 : public Base{public:Derive2(int i) :Base(i) { }//* * 3 * *};void fun (Base *obj){obj->Print ();}int main ( ){//* * 4 * *fun (d1);fun (d2);return 0;}

请按下面注释的提示,将类B的构造函数定义补充完整。classA{int a;public:A(int aa=0) {a=aa;)};Class B:public A{int b;A c;public://用aa初始化基数A,用aa+1初始化类对象成员cB(int aa): (b=aa+2)};

有一个分数,分母加2等于分母减3等于这个分数分子和分母的和为(    )。 A.33    B. 有一个分数,分母加2等于2/5分母减3等于1/2这个分数分子和分母的和为()。A.33B.11C.30D.19

请按下面注释的提示,将类B的构造函数定义补充完整。C1assA{int a;public:A(int aa=O){a=aa;}};class B:public A {int b;A c;public://用aa初始化基类A,用aa+1初始化类对象成员cB(int aa}:【 】{b=aa+2}};

有如下的类的模板定义: template class MyClass { private:T number; public:MyClass( 有如下的类的模板定义:template <class T>class MyClass{private:T number;public:MyClass(T k);…};其中构造函数MyClass()用k的值初始化数据成员n。因此在模板类体外,构造函数MyClass应定义为【 】。

有如下程序:}}}}includeiostreamusing namespace std;class Pair{int m;int n;public:Pair(int i,int J):m(i),n(J){}bool operator(Pair P)const; //需在类体外给出定义};int main(){Pair pl(3,4),p2(4,3),p3(4,5);COUt(plp2)(p2p1)(p2p3)(p3p2);return 0;{运算符函数operator功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n.n大者为大。程序输出0101,下列对运算符重载函数的正确定义是A.bool Pair::operator(Pair P)const {if(m!=P.m)return mP.m;return nP.n;)B.bool Pair::operator(Pair P) {if(m!=P.m)return mP.m;return nP.n;)C.bool Pair::operator(Pair P)const {if(mP.m)return true;return 11P.n;)D.bool Pair::operator(Pair P) {if(mP.m)return true;return 11P.n;}

使用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;}

将“TC(inti,intj)”补充完整为“TC(inti,intj):Num2(j)”。 (2)应添加“friendvoidfunc;”。 (3)应添加“intTC::Num3=4;”。 (4)将“obi.AddNum”补充完整为“obj.AddNum(2);”。 【解析】本题在第1处完成类的构造函数初始化类的成员变量,常数据成员也必须初始化,并且不能被更新,常数据成员的初始化只能通过构造函数的成员初始化类表进行,因此第1处的语句应为“TC(inti,intj):Num2(j)”,i用来初始化Num1和Num3,j初始化Num2。第2处完成fune的函数定义,由审题分析可知,函数fune为类的友元,故第2处的语句应为“friendvoidrune;”。第3处的语句是静态成员的初始化,静态数据成员的初始化格式为“(数据类型)类名::静态数据成员)=初始值”,因此第3处的语句应为“intTC::Num3=4;”。成员函数AddNum带有一个整型参数,因此调用此函数时必须有参数传入,可由程序运行结果分析得知传入的参数值的大小。在fun函数内,定义TCobj(1,2)后,obj.Num1=1,obj.Num2=2,Num3=16+1=17,obj.Num1=4,Numl为4,obj。Num2为常数据成员,其值不会改变,调用AddNum函数后调用显示函数显示成员变量值,可知Num3为19,因此AddNum的参数为19-17=2,即第4处的语句应为“obj.AddNum(2);”。

阅读以下说明和C++码,填入(n)处。[说明]建立一个分数类,使之具有下述功能:建立构造函数,它能防止分母为0,当分数不是最简形式时进行约分以及避免分母为负数。[C++代码]include<iostream.h>include<math.h>class Num{public:Num (int a,int b);private:int num1;int num2;}:Num:: Num (int a,int b){if( (1) ){cout<<"ERROR"<<endl;return;}int min=fabs(a)<fabs (b)?fabs (a): fabs (b);int x=1;for (int i=1;i<=min;i++)if( (2) )x=i;a/=X;b/=x;if( (3) ){a=-a;b=-b;}(4)(5)}

使用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;}

有如下程序:includeusing namespaee std;class Pair{int m;int n;public:Pair(int i, 有如下程序: #include<iostream> using namespaee std; class Pair{ int m; int n; public: Pair(int i,int j):m(i),n(j){ } boot operator>(pair P)const;//需在类体外给出定义 }; int main( ){ Pair pl(3,4),p2(4,3),p3(4,5); cout<<(pl>p2)<<(p2>p1)<<(p2>p3)<<(p3>p2); retum 0; } 运算符函数operator>的功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。程序输出0101,下列对运算符重载函数的正确定义是A.bool Pair::operator>(Pair P)eonstB.bool Pair::operator>(Pair P) {if(m!=P.m)return m>p.In;return n>p.n;} {if(m!=P.m)return m>p.m;return n>p.n;}C.bool Pair::operator>(Pair P)eonstD.bool Pair::operator>(Pair P) {if(m>p.m)return true;return n>p.n;} {if(Ul>p.m)return true;return n>p.n;}

有一类分数,每个分子与分母的和是100,如果分子减K、分母加K,得新的分数约分后等于2/3,其中K是正整数,则该类分数中分数值最小的是:

有一个分数,分母加2等于2/5, 分母减3等于1/2, 这个分数分子和分母的和为( )。A.33 B.11 C.30 D.19

下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()A、基类构造函数—对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员B、基类构造函数—派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数C、派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数—基类构造函数D、对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员—基类构造函数

单选题下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()A基类构造函数—对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员B基类构造函数—派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数C派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数—基类构造函数D对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员—基类构造函数

问答题使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示坐标的类TestClass1,但类TestClass1的定义并不完整,按要求完成下列操作,将类的定义补充完整。  1.声明TestClass2类为TestClass1类的友元类,请在注释∥********1********后添加适当的语句。  2.完成类的构造函数,分别对成员变量赋值,请在注释∥********2********后添加适当的语句。  3.完成类的构造函数,分别对成员变量赋值,请在注释∥********3********后添加适当的语句。  4.完成计算平面上两点之间的距离函数Distance,计算的方法如下:X坐标之差的平方与Y坐标之差的平方之和的开方。请在注释∥********4********后添加适当的语句。  注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。