Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Odczytywanie wartości zwracanej przez funkcję rozdział 17.

Ostatnio zmodyfikowano 2019-05-02 19:41
Autor Wiadomość
evejinka
Temat założony przez niniejszego użytkownika
Odczytywanie wartości zwracanej przez funkcję rozdział 17.
» 2019-05-02 11:15:01
Dzień dobry, mam problem z jednym tematem w rozdziale 17, może ktoś mi rozjaśni ten kod, który się tam znajduje:

C/C++
#include <iostream>

float dodawanie_inne()
{
    float a;
    std::cin >> a;
    float b;
    std::cin >> b;
    return a + b;
}

int main()
{
    std::cout << "Wprowadz dwie liczby: ";
    float tu_bedzie_wynik = dodawanie_inne();
    std::cout << "Wynik dodawania wynosi: " << tu_bedzie_wynik << std::endl;
    return 0;
}

Wiem, że dla niektórych może się to wydać śmieszne, ale patrzę na ten kod i kompletnie nie kumam skąd program wie, że po linijce
std::cout << "Wprowadz dwie liczby: ";
 będzie użytkownik wprowadzał dwie liczby? Gdyby pod tą linijką było napisane
dodawanie_inne();
 no to bym wiedziała o co chodzi bo jest ta funkcja wywołana, ale tak nie mam pojęcia. Pozdrawiam
P-174553
pekfos
» 2019-05-02 12:01:21
Ale przecież jest napisane pod tą linią dodawanie_inne().
C/C++
float tu_bedzie_wynik = dodawanie_inne();
Ta linia wywołuje funkcję i zapisuje zwróconą wartość do nowej zmiennej tu_bedzie_wynik.
P-174554
evejinka
Temat założony przez niniejszego użytkownika
» 2019-05-02 13:18:28
Ok, tylko, że ta linijka wygląda jakby funkcja została po prostu przypisana do zmiennej a nie jak wywołanie funkcji. Czy można to napisać w inny sposób?
P-174555
pekfos
» 2019-05-02 15:03:05
Gdy f to funkcja, to f() to jest wywołanie funkcji. Wyrażenie "f()" jest typu zwracanego funkcji i ma taką wartość, jaką zwróci funkcja, gdy wartość wyrażenia jest obliczana. Nie ma innego sposobu na użycie wartości zwracanej funkcji, niż użycie "f()" w kontekście, który oczekuje wartości danego typu - na przykład w przypisaniu do zmiennej.
C/C++
float zmienna = cokolwiek_typu_float; // lub konwertowalne na float
Zmienna typu liczbowego zawsze przechowuje liczbę, nie sposób na uzyskanie liczby. Wartość zmiennej nie zmieni się sama, chyba że przypiszesz coś innego.
C/C++
float x = f(); // jedno wywołanie
std::cout << x << ' ' << x << '\n'; // 2 razy użyta wartość

std::cout << f() << ' ' << f() << '\n'; // 2 niezależne wywołania
P-174556
evejinka
Temat założony przez niniejszego użytkownika
» 2019-05-02 18:21:13
Ok już coraz bardziej kumam, a czy dałoby radę najpierw wywołać funkcję a dopiero potem w osobnej linijce przypisać do niej zmienną? Byłoby to dla mnie bardziej czytelne.
P-174558
pekfos
» 2019-05-02 19:10:56
Nie.
P-174559
evejinka
Temat założony przez niniejszego użytkownika
» 2019-05-02 19:41:52
Ok, dzięki ;)
P-174560
« 1 »
  Strona 1 z 1