urbanno Napisano Czerwiec 17, 2013 Zgłoś Udostępnij Napisano Czerwiec 17, 2013 Witam, mam pytanie raczej spowodowane ciekawoscia, anizeli praktyczna potrzeba informacji. Dlaczego lepiej jest stworzyc funkcje, ktora zwroci 0, zamiast po prostu zdefiniowac ja jako niezwracajaca niczego?Pytanie to moja teza, nie mam podstaw, by sadzic, ze ta metoda jest 'lepsza', ale w wiekszosci przypadkow spotkalem sie z taka sytuacja, wiec wydaje mi sie, ze cos za nia przemawia. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Mateusz Napisano Czerwiec 17, 2013 Zgłoś Udostępnij Napisano Czerwiec 17, 2013 Pierwszy raz się z czymś takim spotykam. W przypadku funkcji, które zwracają jakąś informację, a tak na prawdę są procedurami, return może się przydać do uzyskania jakiejś informacji na temat powodzenia wykonania. Poza tym przy dobrym kompilatorze nie powinno być różnicy, może jakieś stare przyzwyczajenia. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
jedmac Napisano Czerwiec 17, 2013 Zgłoś Udostępnij Napisano Czerwiec 17, 2013 Nie ma takiej zasady :)Ogólnie zasada jest prosta, tam gdzie masz int main(args) jest return 0. Dlaczego? Właśnie dlatego, że main jest int'em i musi coś zwrócić. Natomiast w przypadku całej reszty return stosujesz zawsze wtedy, kiedy chcesz, żeby funkcja Ci coś zwróciła i wynik całej operacji chcesz gdzieś przypisać. Czasem jest tak, że wygodniej nie zwracać nic, metoda po prostu coś ustawia, natomiast kiedy indziej lepiej coś zwrócić i przypisać, żeby później np. serializować jakiś obiekt. Zastosowań jest mnóstwo i dopiero wraz z doświadczeniem wiesz, kiedy której użyć. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
urbanno Napisano Czerwiec 17, 2013 Autor Zgłoś Udostępnij Napisano Czerwiec 17, 2013 dzieki za odpowiedz, moze po prostu cos zle zinterpretowalem Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
thing Napisano Czerwiec 23, 2013 Zgłoś Udostępnij Napisano Czerwiec 23, 2013 0 zwracasz w przypadku powodzenia wykonania funkcji. Inne (różne wartości) mogą oznaczać różne kody błędu czyli różne przyczyny jego wystąpienia. Jeśli ktoś będzie Twoją funkcję wywoływał i będzie chciało mu się sprawdzać kod powrotu to dowie się więcej o przyczynie niepowodzenia wywołania tej funkcji. Metoda pochodzi chyba trochę jeszcze z C. W C++ możesz użyć void ale musisz wtedy użyć innego mechanizmu przekazania informacji o ewentualnym błędzie, który już C++ posiada.Zwracanie zawsze tej samej wartości, niezależnie od wyniku działania faktycznie mija się z celem. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
utak3r Napisano Lipiec 3, 2013 Zgłoś Udostępnij Napisano Lipiec 3, 2013 To może służyć również za margines na przyszłość - na przykład po jakimś czasie, w procedurze obsługi błędu dodasz np. return 5 - wystarczy dopisać, bez potrzeby zmiany interfejsu funkcji w nagłówkach. Ot, takie przewidywanie na przyszłość... Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.