Skocz do zawartości

c++, return zwracajace 0


urbanno

Recommended Posts

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.

Link do komentarza
Udostępnij na innych stronach

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.

Link do komentarza
Udostępnij na innych stronach

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ć.

Link do komentarza
Udostępnij na innych stronach

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.

Link do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...