填空题

使用VC6打开考生文件夹下的工程test3_1,此工程包含一个源程序文件test3_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: A:a=5 display1:a=6 display2:a=5 源程序文件test3_1.cpp清单如下: #include<iostream.h> Class A { public: /**********found**********/ A (){} void printa(){cout<<"A:a="<<a<<endl;} private: int a; /***********found**********/ class B; }; class B { public: /*********found**********/ void display1(A t) { (*t).a++;cout<<"display1:a="<<(*t).a<<endl; } void display2(A t) { t.a--;cout<<"display2:a="<<t.a<<end1; } }; void main() { A obj1; B obj2; obj1.printa(); obj2.display1(&obj1); obj2.display2(obi1); }

【参考答案】

(1)错误:A(){} 正确:A(){a=5;} (2)错误:class B; 正确:friend class ......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
使用VC6打开考生文件夹下的工程test3_3,此工程包含一个源程序文件test3_3.cpp,其中建立了普通的基类base用于存储边的信息,建立派生类triangle和square,用于存储三角形和正方形的信息。按要求完成下列操作,将类定义补充完整。(1)定义基类base的保护数据成员x和y用于记录边的长度,它们都是int型的数据。请在注释“ **1**”之后添加适当的语句。(2)完成基类base默认构造函数的定义,把数据成员x和y分别初始化为参数a和b的值,要求使用作用域符“::”。请在注释“ **2**”之后添加适当的语句。(3)完成派生类triangle函数disp的定义,使其以“三角形面积:”的格式将三角形的面积输出到屏幕上。请在注释“ **3**”之后添加适当的语句。(4)添写派生类square的默认构造函数的定义,使其调用基类的构造函数,记录下正方形的边长信息a,其缺省值为0。请在注释“ ** 4 **”之后添加适当的语句。输出结果如下:三角形面积:200正方形面积:400注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test3_3.cpp清单如下:#include<iostream.h>class base{protected: ** 1 **public:base(int a,int b){ ** 2 **}virtual void disp(){cout<< 调用base基类 <<endl;)};class triangle:public base{public:triangle(int a,int b):base(a,b){};void disp(){ ** 3 **}};class square:public base{public: ** 4 **void disp(){cout<< 正方形面积: <<x*y<<endl;}};void main(){base *p;triangle t(20,20);square s(20);p=&t;p->disp();p=&S;p->disp();}