Nach dem folgenden Programm kann ich verstehen, dass const
Schlüsselwort an einer Vorderseite eines Verweises Const Reference to const value
bedeutet, richtig?
Referenzen sind immer const, Sie brauchen also das Schlüsselwort const
nicht
Sie; es ist in der Tat verboten.
Sie haben also:
%Vor%, aber nur:
%Vor% Der const
, der unmittelbar auf den Namen des Typs folgt, kann verschoben werden
zu Beginn der Erklärung, auf Kosten einiger Verwirrung zu
der Leser.
Ja, const
vor einer Referenz bedeutet, dass das Objekt, auf das verwiesen wird, als const behandelt wird (d. h. Sie können nicht auf nicht konstante Methoden oder Datenelemente zugreifen).
Die Referenz selbst ist immer "const" in dem Sinne, dass sie nicht geändert werden kann, um auf ein anderes Objekt zu verweisen, nachdem es initialisiert wurde.
Eine Referenz ist weder const noch nicht const, sie ist nur eine Referenz. Du kannst den Schiedsrichter einer Referenz nicht ändern (das ist der Grund dafür), also macht es keinen Sinn, über Konstanz zu sprechen. In Ihrem Beispiel wird der Verweis nur als const-Verweis bezeichnet, da er sich auf einen const-Typ bezieht.
const Schlüsselwort vor einer Referenz bedeutet Const Referenz auf const Wert, richtig?
Es bedeutet, dass Sie das Objekt nicht mit der Referenz ändern können.
Das Objekt, auf das sich die Referenz bezieht, könnte noch modifizierbar sein, aber es kann nicht mit die Referenz geändert werden:
Wenn das Objekt, auf das es sich bezieht, wirklich modifizierbar ist, dann können Sie die Konstante mit const_cast
wegwerfen und dann das Objekt ändern.
Wenn das Objekt jedoch nicht änderbar ist, würde der Versuch, es durch Wegwerfen der const-ness zu ändern, ein undefiniertes Verhalten auslösen.