我有问题如何才能返回显示的答案,因为我一直收到一个错误,即void无法返回变量。 如何将其发送到我的显示功能。
void Rational::add(const Rational&h2)
{
int num = 0;
int dem = 0;
add(h2);
int P = num * h2.dem + h2.num*dem;
int Q = dem*h2.dem;
}
void display() const; // _p:_q
{
if (Q == 1) // e.g. fraction 2/1 will display simply as 2
cout << P << endl;
else
cout <<P << "/" << Q << endl;
}
答案 0 :(得分:0)
void是您定义的函数的返回类型,void也表示您不返回任何内容。如果你有一个函数&#34; int Rational :: add(**)&#34;然后你可以从函数中返回一个int。
从我所看到的,你有一些问题:
你从add()函数中调用add(),这将一直循环,直到你有一个堆栈溢出
从我所看到的你有一个变量Q和P并且你想要显示它们,显示属于该类的isn&ta函数,因此它无法访问变量Q和P我假设在你的标题中定义。
如果你在标题中定义了Q和P,那么你的函数add()就不会写入它们。当你在add()函数中说int Q和int P时,你正在定义一个具有相同名称的新变量,写入这个局部变量并不会改变你可能想要的Q和P.写给。要解决这个问题,你只需再次定义Q和P,然后在没有int的情况下编写它。
P = num * h2.dem + h2.num * dem;
Q = dem * h2.dem;