Verständnissfrage



  • Hi,
    ich bin ein ziemlicher Neueinsteiger in C++ und versuche es über die Sommerferiern anzueignen (einen groben Überblick zu bekommen).
    Lernen tue ich mit dem Buch "C++ für Spieleprogrammierer" von heiko KALISTA.

    In dem Buch gibt es viele Beispiele die anschließend erklärt werden es gibt aber eine Sache, die ich nicht verstanden habe:

    der Beispielcode
    ...
    bool testeBereich (int Position, int Min, int Max);

    int main ()
    {

    int Minimum = 0;
    int Maximum = 800;
    int xPosition;

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

    if (testeBereich (xPosition, Minimum, Maximum) == true)
    cout << ..............................
    else
    cout << ..........................

    return 0;
    }

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

    Ich verstehe einfach nicht wiso in der main-Funktion xPosition, Minimum und Maximum steht statt Position, Min und Max 🙄



  • int Position, int Min, int Max <- sind deklarationen der funktion: testeBereich

    wie ich diese funktion ausrufe ist egal (also welche variablen ich übergebe, solange es die richtige anzahl und der richtige typ ist .

    heist ich könnte in den aufruf im main auch schreiben:

    testeBereich(1,2,3);

    oder aber:

    int a=1;
    int b=2;
    int c=3;

    testeBereich(a,b,c);

    solange die anzahl der argumente (3 x int) und der richtige typ angegeben ist
    ist es egal wie die variable heisst die ich übergebe.

    a , b , c wird beim aufruf an die variablen: int Position, int Min, int Max übergeben.

    so als ob ich schreiben würde:

    int Position = a;
    int Min = b;
    int Max = c;

    mfg LT



  • Und ergänzend:

    Variablen können den gleichen Namen haben, solange sie sich nicht im gleichen Scope (Gültigkeitsbereich) befinden:

    void Foo(int min) {
      min=5;  //hier ist min eine funktionslokale Variable, die nur zufällig den gleichen Namen trägt.
              //Ihr wird der Wert 5 zugewiesen, aber unten in deiner main-Funktion ändert sich nichts an der Variable min
    }
    
    int main() {
      int min=0;  //diese Variable min ist etwas völlig anderes als die da oben in Foo()!
      Foo(min);
    
      {  //hier wird ein neuer Scope aufgemacht
        int min=4;  //diese dritte Variable namens min hat ebenfalls nichts mit den anderen beiden zu tun
      }
      std::cout << min;  //hier wird 0 ausgegeben, nicht 4 oder 5
    }
    


  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++ (auch C++0x und C++11) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Danke für eure Antworten, jetzt hab ich es verstanden 🙂


Anmelden zum Antworten