(Konstante) Verwirrung



  • Hallo miteinander,
    Ich lese gerade c++ in 21 Tagen durch. Dabei bin ich auf eine (für mich) etwas verwirrende Funktion gestoßen:

    const SimpleCat * const FunctionTwo (const SimpleCat * const theCat);
    

    SimpleCat ist dabei nur eine Beispielklasse. Eins ist mir ja klar: Es wird als Parameter ein konstanter Zeiger auf eine Konstante SimpleCat-Instanz verlangt. Aber warum ist der Rückgabewert der Funktion als „const“ deklariert?, für mich macht das keinen Sinn...
    Was das 2. „const“ (von links) vor dem Funktionsnamen macht ist für mich auch unerklärlich!

    Vielleicht kann jemand mal ein paar meiner Const-Fragen auflösen, wäre nett 😉



  • char const * const p;
    

    Konstanter Zeiger auf konstantes char (von rechts nach links lesen!)
    Aus historischen oder ästhetischen Gründen ist auch

    const char * const p;
    

    erlaubt. Beantwortet das deine Frage?

    Jeweils ein const (das was sich jeweils auf den Zeiger, nicht auf das Ziel des Zeigers, bezieht) ist bei deiner Funktion wirklich nicht völlig sinnvoll, aber das ist Ansichtssache.



  • Ein bisschen verwirrend, aber danke für die Antwort. Ich denke jetzt hab ich´s verstanden... 💡


Anmelden zum Antworten