Jak w temacie. Ciągle mi zarzucacie, że nie znam podstaw itp itd... no to rzucam pierwszy lepszy przykład z brzegu którym się zająłem - tak, zaraz powiecie, że zaczynam od d... strony, a nie od początku, możliwe, że tak ale tym przykładem chcę udowodnić, że ile by podręczników do podstaw nie przeczytał to i tak wszystkiego się w nich nie znajdzie. Może tutaj znajdzie się jakieś wyjaśnienie z przykładem
Zacznę od kodu który napisałem w wątku
Przypomnę kod
int SettingsFile::readSettings()
{
QFile readFileJson;
readFileJson.setFileName(QString("settings.json"));
if(!readFileJson.open(QIODevice::ReadOnly | QIODevice::Text)){
qInfo()<< "nie mozna odczytac pliku";
return 2; //numer błędu
}
else{
QByteArray data;
data = readFileJson.readAll();
return 0; //numer informujący, że coś się powiodło
}
return -2; //nieprzewidzany wyjątek...
}
niejaki @_13th_Dragon zarzucił mi, że źle zwracam wartość za pomocą return
ok. możliwe, że robię to źle ale czytając dokumentację
- https://en.cppreference.com/w/cpp/language/return
- https://www.w3schools.com/cpp/cpp_function_return.asp
- https://www.programiz.com/cpp-programming/return-reference
- https://www.digitalocean.com/community/tutorials/return-array-in-c-plus-plus-function
natykam się, że tak to ujmę - na standardowe użycie - i to dotyczy DOSŁOWNIE KAŻDEGO PODRĘCZNIKA DO PODSTAW - nikt w tych rozważaniach nie skupia się na różnych przypadkach użycia return
- co ciekawe nawet inni mają problem z poprawnym zwróceniem wartości
- https://stackoverflow.com/questions/1735038/why-not-all-control-paths-return-a-value-is-warning-and-not-an-error
- https://stackoverflow.com/questions/1734927/compare-characters-at-the-end-of-the-string-c
- https://stackoverflow.com/questions/67284316/non-void-function-does-not-return-a-value-in-all-control-paths-in-c
Mając na uwadze powyższe, bezzasadne są zarzuty, że nie znam podstaw - dla mnie użycie na przykład return
w różnych przypadkach wynika bardziej z doświadczenia programistycznego, aniżeli z oczytania się książkami od podstaw
.
Teraz czas na przykłady uwag od kompilatora
nawet rada @_13th_Dragon aby usunąć else
nic nie daje (poniżej screeny z kompilatora, gdyż chcę pokazać żółte uwagi)
-
Screen 1
-
Screen 2
-
Screen 3 - dlaczego poniżej nie ma uwagi ?
na koniec chcę dodać - TYLKO KULTURALNA merytoryczna rozmowa, BEZ bluzg, tzw. wycieczek osobistych i nic nie wnoszących krótkich zwrotów typu wróć do podstaw
, doucz się
, pomyśl
itp. bo to nie prowadzi do niczego, niczego nie wnosi i w takich warunkach nie da się nabyć poprawnej wiedzy aby pójść do przodu, takich rozmów NIGDY nie toleruję - bo jak sam wątek wskazuje, wszystkich możliwych przypadków i pełnej wiedzy o programowaniu dowolny autor podręcznika nie opisze, a w zasadzie nie wyczerpie - dlatego potrzebna jest wymiana wiedzy i doświadczenia między nami.