761 Stimmen

Was ist mit "const" am Ende der Funktionsdeklaration gemeint?

Ich habe ein Buch, in dem etwas geschrieben steht wie:

class Foo 
{
public:
    int Bar(int random_arg) const
    {
        // code
    }
};

Was bedeutet das?

33 Stimmen

Es ändert die Art der this de Foo* const in const Foo* const . Das hat Folgen.

0 Stimmen

Ich verstehe Ihre Bearbeitung nicht. Was genau wollen Sie wissen? Ob die Deklaration von zwei Variablen des Typs Foo mehrere Funktionsinstanzen von Bar erzeugen wird?

0 Stimmen

@inflagranti: Ja, genau das will ich wissen.

9voto

orbfish Punkte 6769

Die Funktion kann ihre Parameter nicht über den Zeiger/Verweis ändern, den Sie ihr gegeben haben.

Ich gehe jedes Mal auf diese Seite, wenn ich darüber nachdenken muss:

http://www.parashift.com/c++-faq-lite/const-correctness.html

Ich glaube, es gibt auch ein gutes Kapitel in Meyers' "More Effective C++".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X