Return - po co to? W jaki sposób zwraca wartość?

0

Witam! Ostatnio zastanawiam się po co to return. Wiem, że zwraca on wartość, ale jak. Ale co to robi? Mimo iż ostatnio wkroczyłem w programowanie obiektowe liczę na szybką odpowiedź.

 class Cat{
public:
void setAge(int Age);
private:
int GetAge;
};
int Cat::setAge(){

return GetAge;//Po co to?
}
int main(){
Cat bobas;
bobas.setAge(1);
return 0;
}
2

to się nie skompiluje.

ale jak masz na przykład:

int getAge()
{
   return 42;
}

to wywołanie takiej funkcji, jeśli jest użyte w miejsce wartości, przyjmuje wartość zwracaną przez return:

int i = getAge();

i będzie równe 42.

0

return nie jest pojęciem które pojawia się dopiero z programowaniem obiektowym, radze wrócić do podstaw.

1

Jak możesz brać się za programowanie obiektowe nie znając podstaw funkcji? Tu jest wszystko wyjaśnione Funkcje Funkcja typu void nic nie zwraca więc return nic tu nie robi

0

return wrzuca wartość na stos/do rejestru i robi skok do miejsca wywołania funkcji (ściślej, miejsca, którego adres jest zapisany stosie. Można go zmienić więc niekoniecznie musi to być miejsce wywołania funkcji)

0
piootr napisał(a):

Funkcja typu void nic nie zwraca więc return nic tu nie robi

To, że Return "nie zabiera" ze sobą żadnej wartości, nie oznacza, że nic nie robi.

3

w funkcji typu void słowo return jest opcjonalne - powoduje wyjście z funkcji w tym miejscu. nie podaje się żadnej wartości:

void foo()
{
    printf("to się wykona");
    return;
    printf("a to nie");
}

taki kod oczywiście nie ma sensu - kto by pisał cokolwiek po returnie, skoro nigdy się nie wykona. ale returna można użyć w warunku:

if (cośtam)
    return;
printf("to się wykona albo nie, zależnie od czegośtam");

1 użytkowników online, w tym zalogowanych: 0, gości: 1