Normalerweise wird der Spezifizierer const
verwendet, um eine konstante Elementfunktion anzugeben. Aber was bedeutet es, wenn das Schlüsselwort volatile
verwendet wird?
Das kompiliert für mich gut, aber ich verstehe nicht, wofür das ist. Ich konnte bei meiner Suche keine Informationen darüber finden, daher wird jede Hilfe geschätzt.
Update: Um es klar zu machen, weiß ich, wofür volatile
ist. Ich weiß einfach nicht, was es in diesem Zusammenhang bedeutet.
Bei einer Mitgliedsfunktion gelten die const
und volatile
Qualifikationsmerkmale für *this
. Der Zugriff auf Instanzelemente innerhalb dieser Memberfunktion wäre dann volatile
accesses mit derselben Semantik wie jede Variable volatile
. Insbesondere können nicht- volatile
-Memberfunktionen nicht für ein volatile
-Objekt aufgerufen werden, und volatile
gilt für das Überladen auf die gleiche Weise wie const
:
Objekte, die als flüchtig deklariert sind, werden in bestimmten Optimierungen nicht verwendet, da sich ihre Werte jederzeit ändern können. Das System liest immer den aktuellen Wert eines flüchtigen Objekts an dem Punkt, an dem es angefordert wird, selbst wenn eine vorherige Anweisung einen Wert von demselben Objekt angefordert hat. Außerdem wird der Wert des Objekts sofort bei der Zuweisung geschrieben.
Ein flüchtiges Objekt kann nur flüchtige Elementfunktionen aufrufen.
Wenn Sie also die Elementfunktion als flüchtig markieren, würden Sie den Zugriff auf die nicht statischen Datenelemente des Objekts innerhalb dieser Elementfunktion als flüchtig festlegen.
Tags und Links c++