将答案从“void”返回到另一个函数

时间:2015-09-30 18:48:48

标签: c++11

我有问题如何才能返回显示的答案,因为我一直收到一个错误,即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;
    }

1 个答案:

答案 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;