const type Qualifier bald nach dem Funktionsnamen [duplicate]

7

In C ++ sehe ich manchmal Erklärungen wie unten:

%Vor%

Was genau macht dieser Const-Typ-Qualifier in diesem Fall?

    
Vijay 13.08.2010, 05:22
quelle

3 Antworten

7

$ 9.3.1 / 3 besagt -

"Eine nichtstatische Elementfunktion kann als const, volatile oder const volatile deklariert werden. Diese cvqualifiers beeinflussen den Typ des this-Zeigers (9.3.2). Sie beeinflussen auch den Funktionstyp (8.3.5) der Elementfunktion; Eine Memberfunktion deklariert const ist eine const Memberfunktion, eine Memberfunktion deklariert volatile ist eine flüchtige Memberfunktion und eine Memberfunktion deklariert const volatile ist eine const volatile member function. "

Also hier ist die Zusammenfassung:

a) Ein const-Qualifikationsmerkmal kann nur für nicht statische Member-Funktionen der Klasse verwendet werden

b) cv Qualifikation für die Funktion Teilnahme am Überladen

%Vor%     
Chubsdad 13.08.2010, 05:47
quelle
13

Das const-Qualifikationsmerkmal am Ende einer Member Function-Deklaration zeigt an, dass die Funktion für Objekte aufgerufen werden kann, die selbst const sind. const-Member-Funktionen versprechen, den Status nicht veränderbarer Datenelemente nicht zu ändern.

const-Member-Funktionen können natürlich auch für nicht-konstante Objekte aufgerufen werden (und machen trotzdem das gleiche Versprechen).

Member-Funktionen können auch bei const-ness überlastet sein. Zum Beispiel:

%Vor%     
Drew Hall 13.08.2010 05:26
quelle
3

Dies bedeutet, dass das Objekt nicht geändert wird. Sie können diese Methode also mit einem const-Objekt aufrufen.

d.

%Vor%

Bedeutet, dass wenn Sie

haben %Vor%

Sie können

anrufen %Vor%

ohne einen Kompilierfehler, weil die Methodendeklaration angibt, dass die Daten des Objekts nicht geändert werden.

    
Shawn D. 13.08.2010 05:26
quelle

Tags und Links