fun(ppstr, 20); _______ }
答案:*array=new mystring(len);,(**ppstr).show();或str.show();
[解析]调用mystring类的构造函数开辟空间,后进行字符的复制。输出可以直接使用str或者 使用二级指针。
2. 在下面程序横线处填上适当字句,完成类的定义。 class line; class box { private: int color; int upx, upy; int lowx, lowy; public: _________
void set_color (int c){color=c;}
void define_box (int x1, int y1, int x2, int y2) {upx=x1;upy=y1;lowx=x2;lowy=y2;} };
class line { private: int color;
int startx, starty; int endx, endy; public:
friend int same_color(line l,box b); void set_color (int c) {color=c;} void define_line (___________)
{startx=x1;starty=y1;endx=x2;endy=y2;} };
int same_color(line l, box b) {if (l.color==b.color) return 1; return 0; }
答案:friend int same_color(line l, box b );,int x1, int y1, int x2, int y2
[解析]成员函数作为友元函数的使用。使用friend关键字。由函数体可知形参的类型和个数。 3. 下面程序用来求直角三角形斜边长度。 #include
Point(double i=0,double j=0) {x=i;y=j;}
Point(Point &p) {x=p.x;y=p.y;} };
class Line {private: Point p1,p2; public:
Line(Point &xp1,Point &xp2):________{} double GetLength(); };
double Line::GetLength() {double dx=p2.x-p1.x; double dy=p2.y-p1.y;
return sqrt(dx*dx+dy*dy); }
void main()
{ Point p1,p2(6,8); Line L1(p1,p2);
cout< 答案:friend Line;,p1(xp1),p2(xp2) [解析]友元类的使用,定义Line是Point类的友元类,成员对象的初始化采用列表的形式。 4. 在下面程序的底画线处填上适当的字句,使该程序执行结果为40。 #include Test (int i=0) {x=i+x;} int Getnum() {return Test::x+7;} }; _______; void main() {Test test; cout< 答案:static int x;,int Test::x=30; [解析]从成员函数访问方式类名::成员可知是静态成员所以static int x;从结果要对初始 化为30,且在类外进行初始化, int Test::x=30;。 5. 在下列程序的空格处填上适当的字句,使输出为:0,2,10。 #include Magic(double d=0.00):x(fabs(d)) {} Magic operator+(______) { return Magic(sqrt(x*x+c.x*c.x)); } _______operator<<(ostream & stream,Magic & c) { stream< void main() {Magic ma;