c1.Print(); c2.Print(); c1=complex(0.8,0.5); c2=55; c3=complex(); c1.Print(); c2.Print(); }
参考答案:
c3.Print();
c3.Print();
Default constructor called. Constructor:real=6.9,imag=0 Constructor:real=12.2,imag=25.8 0+0i 6.9+0i 12.2+25.8i
Constructor:real=0.8,imag=0.5 Constructor:real=55,imag=0 Default constructor called. 0.8+0.5i 55+0i 0+0i
(11)分析下列程序,并回答下列问题 #include
int Length; char *Buffer; public:
String() { Length=0; Buffer=0; } String(const char *str);
~String() { delete []Buffer; }
void Setc(int index,char newchar); char Getc(int index) const;
int GetLength() const { return Length; } void Print() const
{ if(Buffer==0) cout<<\ else cout< void Append(const char *Tail); }; String::String(const char*str) { Length=strlen(str); Buffer=new char[Length+1]; strcpy(Buffer,str); 20 } void String::Setc(int index,char newchar) { if(index>0 && index<=Length) Buffer[index-1]=newchar; } char String::Getc(int index) const { if(index>0 && index<=Length) return Buffer[index-1]; else return 0; } void String::Append(const char *Tail) { char *tmp; Length+=strlen(Tail); tmp=new char[Length+1]; strcpy(tmp,Buffer); strcat(tmp,Tail); delete []Buffer; Buffer=tmp; } void main() { String s0,s1(\ s0.Print(); s1.Print(); cout< cout< s2.Append(\ s2.Print(); } 回答下列问题: 1)该程序中调用包含在string.h文件中的哪些函数? 2)该程序的String类中是否用了函数重载的方法?那些函数是重载的? 3)简述Setc()函数有何功能? 4)简述Getc()函数有何功能? 5)简述Append()函数有何功能? 6)该程序中的成员函数Print()中不用if语句,只写成如下一条语句,行否? cout< 7)该程序中有几处使用了new运算符? 8)写出该程序执行后的输出结果。 参考答案: 1)strlen(),strcpy(),strcat() 2)String类中的构造函数用了函数重载的方法 3)设置指定位置上的字符 4)得到指定位置上的字符 5)字符串连接 21 6)不行 7)两处 8)empty. a string. 9 a stping. i this a string. (12)#include class A { int a,b; public: A(int i,int j) { a=i; b=j; } void Move(int x,int y) { a+=x; b+=y; } void Show() { cout<<'('< class B:private A { int x,y; public: B(int i,int j,int k,int l):A(i,j) { x=k; y=l; } void Show() { cout< void main() { A a(1,2); a.Show(); B b(3,4,5,6); b.fun(); b.Show(); b.f1(); } 参考答案: (1,2) 5,6 (10,12) (13)#include 22 A(int i,int j) { a=i; b=j; } void Move(int x,int y) { a+=x; b+=y; } void Show() { cout<<'('< class B:public A { int x,y; public: B(int i,int j ,int k,int l):A(i,j),x(k),y(l) { } void Show() { cout< void main() { A a(1,2); a.Show(); B b(3,4,5,6); b.fun(); b.A::Show(); b.B::Show(); b.f1(); } 参考答案: (1,2) (6,9) 5,6 (6,9) (14)#include class L { int X,Y; public: void InitL(int x,int y) { X=x; Y=y; } void Move(int x,int y) { X+=x; Y+=y; } int GetX() { return X; } int GetY() { return Y; } }; class R:public L { int W,H; public: void InitR(int x,int y,int w,int h) { InitL(x,y); W=w; H=h; } int GetW() { return W; } int GetH() { return H; } 23 }; class V:public R { public: void fun() { Move(3,2); } }; void main() { V v; v.InitR(10,20,30,40); v.fun(); cout<<'('< 参考答案: (13,22,30,40) (15)#include class P { int pri1,pri2; public: P(int p1,int p2) { pri1=p1; pri2=p2; } int inc1() { return ++pri1; } int inc2() { return ++pri2; } void display() { cout<<\ }; class D1:private P { int pri3; public: D1(int p1,int p2,int p3):P(p1,p2) { pri3=p3; } int inc3() { return ++pri3; } void display() { P::display(); cout<<\ }; class D2:public P { int pri4; public: D2(int p1,int p2,int p4):P(p1,p2) { pri4=p4; } int inc4() { return ++pri4; } void display() { P::display(); cout<<\ }; class D12:private D1,public D2 { int pri12; public: D12(int p11,int p12,int p13,int p21,int p22,int p23,int p) 24