Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

LuGo

Frischling

  • »LuGo« ist der Autor dieses Themas

Beiträge: 54

Wohnort: Attendorn im schönen Sauerland

Beruf: Schüler

  • Private Nachricht senden

1

17.08.2010, 11:34

Kapitel 4 (Funktionen/Return)/Überladene Funktionen

Hallo zusammen,

ich verstehe das mit dem Return am ende einer Funktion nicht (hab das Thema jetzt schon 4 oder 5 mal durchgelesen) und werde daraus nicht schlau ?( . Außerdem verstehe ich nicht ganz den Sinn von überladenen Funktionen. Könnt ihr mir das mal für ganz doofe erklären? :D

mfg

LuGo

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

17.08.2010, 11:48

stell dir vor du schreibst eine funktion die eine komplizierte berechnung macht. z.b. eine wurzel zieht.
der übergibst du einen parameter sqrt(float), davon wird die wurzel gezogen und mit return zurück gegeben. den rückgabewert kannst du dann nutzen.

float wert1 = 4.f;
float wert2 = sqrt(wert1);
cout << wert2;

ausgabe: 2

der sinn von überladenen funktionen ist recht einfach. manchmal müssen verschiedene datentypen anders behandelt werden(z.b. muss bei int mit bestimmten funktionen gerundet werden, float hingegen hat kommastellen und muss nicht gerundet werden)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

3

17.08.2010, 11:52

Mit der return-Anweisung definierst du den Rückgabewert einer Funktion. War das verständlich? ^^
<< an dieser Stelle ist eine Signatur verstorben >>

LuGo

Frischling

  • »LuGo« ist der Autor dieses Themas

Beiträge: 54

Wohnort: Attendorn im schönen Sauerland

Beruf: Schüler

  • Private Nachricht senden

4

17.08.2010, 11:56

Nur nochmal zum Verständnis return liefert einen Rückgabewert einer Funktion, mit der dann weitergearbeitet werden kann.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

5

17.08.2010, 12:43

Genau, du kannst dir vorstellen, dass im Quellcode, wenn du die Funktion benutzt, dann nicht mehr die funktion da steht, sondern der rückgabewert.

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

6

17.08.2010, 12:44

Ja, kann man so sagen, ist aber schlabbrig. Ich verleich das ganz gerne mit mathematischen Funktionen:

f(x) = x^2

In dem Fall wäre x^2 der Rückgabewert. Also wenn du eine Funktion als mathematische Funktion schreibst, ist der Rückgabewert das, was rechts vom Gleichheitszeichen steht. Und in C++ wird der Rückgabewert über return angegeben.
<< an dieser Stelle ist eine Signatur verstorben >>

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

7

17.08.2010, 15:04

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
// Das int besagt , dass diese Funktion eine Zahl zurückgibt.
int MyIntFunction ( )
{
    // Die Funktion gibt die Zahl 1 zurück.
    return 1 ;
}

// Das char * besagt , dass diese Funktion einen Text zurückgibt.
char * MyCharFunction ( )
{
    // De Funktion gibt den Text Hello World! zurück.
    return "Hello World!" ;
}

int main ( )
{
    // Die Funktionen werden nun aufgerufen und geben den Text und die Zahl zurück , welche mit std::cout ausgegeben wird.
    std::string << MyCharFunction ( ) << " " << MyIntFunction ( ) ;
    std::cin.get ( ) ;
}


Hoffe ich konnte dir das ein wenig deutlicher machen.

MfG Stazer

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

8

17.08.2010, 22:53

...und bei der Funktion steht return nur da, weil es so üblich ist, man braucht es aber nicht an der Stelle, da die Funktion NICHTS (void) zurück gibt:

C-/C++-Quelltext

1
2
3
4
5
void MyFunc()
{
       // [...]
       return;
}


Außerdem kann man mit return zu jeder Zeit eine Funktion abbrechen (mit oder ohne Rückgabewert):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
void MyFunc()
{
       // [...]

       if(x != y)
              return;

       // [...]

       return;
}

LuGo

Frischling

  • »LuGo« ist der Autor dieses Themas

Beiträge: 54

Wohnort: Attendorn im schönen Sauerland

Beruf: Schüler

  • Private Nachricht senden

9

18.08.2010, 20:30

Ist das denn so jetzt richtig:

Eine Variable, die in einer Funktion geschrieben wurde wurde in der Funktion InitialisiereTestVariable, in der die Variable "Test" geschrieben wurde, ein Wert zugewiesen. Dieser Wert ist privat deklariert und mit Rückgabewert kann ich die Variable für andere Funktionen zugänglich machen. Stimmt so oder???

LuGo

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

10

18.08.2010, 20:39

Ich kenne den Code nicht, vermute aber, dass du eine Funktion meinst, die eine private Klassenmembervariable zurückgibt. Das ist ein weiteres Anwendungsgebiet von return, aber die Variable kann dadurch nur gelesen und nicht verändert werden.

Werbeanzeige