A-A+

使用VC6打开考生文件夹下的工程test22_1 此工程包含—个源程序文件test22_1.

2022-08-05 22:54:11 问答库 阅读 173 次

问题详情

使用VC6打开考生文件夹下的工程test22_1,此工程包含—个源程序文件test22_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为:
6/15
3/4
9/19
源程序文件test22_1.cpp清单如下:
include<iostream.h>
class Franction
{
int nume;
int deno;
public:
Franction FranAdd(const Franction& x)
{
this->nume+=x.nume;
this->deno+=x.deno;
/****************found*******************/
return this;
}
void InitFranction() {nume=0; deno=l;}
void InitFranction(int n, int d) {nume=n; deno=d;}
void FranOutput() {cout<<nume<<"/"<<deno<<endl;}
};
void main()
{
Franction *a=new Franction;
Franction *b=new Franction;
a->InitFranction(6,15);
b->InitFranction(3,4);
a->FranOutput();
b->FranOutput();
Franction c;
/****************found*******************/
c->InitFranction();
/****************found*******************/
c=a->FranAdd(b);
c. FranOutput();
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1)错误:return this;正确:return*this;(2)错误:c->InitFranction();正确:c.InitFrancfion();(3)错误:c=a->FranAdd(b);正确:c=a->FranAdd(*b);
(1)错误:return this;正确:return*this;(2)错误:c->InitFranction();正确:c.InitFrancfion();(3)错误:c=a->FranAdd(b);正确:c=a->FranAdd(*b); 解析:(1)主要考查考生对于this指针和函数返回值的掌握,它是指向正在活动的对象自己的指针,该函数应该返回Franction类型的对象,即应该使用"*";
(2)主要考查考生对于对象和对象指针的使用,对象指针调用成员函数使用符号“->”,而对象调用成员函数使用“.”;
(3)主要考查考生对于函数参数使用的掌握,FranAdd()使用对象的引用作为形参,所以实参应该是对象本身。

考点:工程,源程序