Odczytywanie wartości zwracanej przez funkcję rozdział 17.
Ostatnio zmodyfikowano 2019-05-02 19:41
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: #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 |
|
pekfos |
» 2019-05-02 12:01:21 Ale przecież jest napisane pod tą linią dodawanie_inne(). float tu_bedzie_wynik = dodawanie_inne();
Ta linia wywołuje funkcję i zapisuje zwróconą wartość do nowej zmiennej tu_bedzie_wynik. |
|
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? |
|
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. float zmienna = cokolwiek_typu_float;
Zmienna typu liczbowego zawsze przechowuje liczbę, nie sposób na uzyskanie liczby. Wartość zmiennej nie zmieni się sama, chyba że przypiszesz coś innego. float x = f(); std::cout << x << ' ' << x << '\n';
std::cout << f() << ' ' << f() << '\n';
|
|
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. |
|
pekfos |
» 2019-05-02 19:10:56 Nie. |
|
evejinka Temat założony przez niniejszego użytkownika |
» 2019-05-02 19:41:52 Ok, dzięki ;) |
|
« 1 » |