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

1

06.07.2012, 16:44

Verstäntnisproblem bei Funktionsparameter in Kapitel 4

Hallo,
ich glaube ich habe ein Verständnisproblem bei Listing 4.7.
Ich hoffe ihr könnt mir helfen.

Hier die Listing:
Die betreffenden Zeilen habe ich mit Nummern versehen.

// Listing 4.7
// Bereichsabfrage

#include <iostream>

using namespace std;

bool testeBereich (int Position, int Min, int Max); // Prototyp

// Hauptprogramm
//
int main ()
{
// Variablen
//
17: int Minimum = 0;
18: int Maximum = 800;
19: int xPosition;

cout << "Spielerposition auf der x-Achse: ";
22: cin >> xPosition;

24: if (testeBereich (xPosition, Minimum, Maximum) == true)
cout << "Spieler ist noch auf dem Bildschirm" << endl;
else
cout << "Spieler ist ausserhalb des Bildschirms" << endl;

return 0;
}

// testeBereich
//
34: bool testeBereich (int Position, int Min, int Max)
{
36: if ((Position >= Min) && (Position < Max))
return true;
else
return false;
}


So wie ich das Verstanden habe, übergeben wir in Zeile 24
die Variablen Minimum, Maximum und xPosition (Zeile 17, 18, 19) der Funktion., damit die Funktion mit diesen
Variablen rechnen kann.

Jedoch übergeben wir in Zeile 34 die Variablen Position, Min
und Max, und rechnen mit diesen Werten in Zeile 36.

Warum rechnet man in Zeile 36 nicht mit den Variablen
Minimum, Maximum und xPosition, sondern mit den Variablen aus Zeile 34, und
woher weiß der Compiler mit welchen Werten er rechnen muss, da wir ja nur in
Zeile 17, 18 und 22 die Variablen definiert haben (ich dachte man muss auf die
Schreibung achten)?

Ich hoffe ihr könnt mir helfen

Mfg.

Geheim

Treue Seele

Beiträge: 202

Wohnort: Salzburg

Beruf: Schüler

  • Private Nachricht senden

2

06.07.2012, 16:56

Weil die Parameter einer Funktion eigene Namen besitzen (können).
Du könntest auch dieselben Namen benutzen wenn du willst...
Aber es ist für den Compiler nur wichtig, dass du den richtigen Typ übergibst, egal wie der heißt. Du kannst ja die Funktion x-mal aufrufen mit x-beliebigen Variablen und es wird dann mit denen gerechnet...
Hoffe ich konnte dir weiterhelfen.
MfG Geheim!

FSA

Community-Fossil

  • Private Nachricht senden

3

06.07.2012, 16:59

Das ist alles richtig so. Doch bei Funktionsparameter ist es egal, ob die Variablen gleich heißen.
Wenn du sowas hast:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool abc(int hallo)
{
if(hallo == 0)
  return true;

return false;
}


int main()
{
  int xyz = 0;
  abc(xyz);
}

machst du mit der Variable hallo = xyz und kopierst hallo in die Funktion.(Bitte nur so vorstellen)
Und bitte Codetags verwenden ;)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

4

06.07.2012, 19:09

Ah! Jetzt wird mir so einiges klar. :)
Das heißt Position hat den Wert von xPosition, nur ich hab einfach den Namen geändert.

Danke für die schnelle Hilfe!

mfg. gannes

Werbeanzeige