получение фиктивного значения в коде C ++ вместо ожидаемого - PullRequest
0 голосов
/ 10 февраля 2019

У меня проблема с пониманием того, почему мой код предоставляет мне какое-то фиктивное значение.

Может ли кто-нибудь мне помочь, если я виноват и в чем причина?

#include <stdio.h>
#include <iostream>

class mypair
{
public:
    int a,b;

public:

    int print (int first , int second)
    {
        a = first;
        b = second;
        std::cout<<a <<" hello "<<b;
    }

    int getmax();
};

int mypair ::getmax()
{
    int res;
    res = (a>b)?a:b;
    std::cout<<res;
    return res;
}

int main ()
{
    mypair abc;

    std::cout<<abc.print(5,6);
    std::cout<<abc.getmax();
}

1 Ответ

0 голосов
/ 10 февраля 2019

print() не возвращает никакого значения, но ожидается, что он вернет int.Это UB, и ваши фиктивные значения вызваны этим.

Кроме того, как print(), так и getmax() вы отправляете вывод на cout.В случае getmax() этот вывод будет немедленно предшествовать выводу возвращаемого значения, в результате чего одно и то же число будет отображаться дважды без пробела или разделителя.

...