Sie sind wahrscheinlich vertraut mit dem Konzept der Konstanten und dem Keyword const, das Variablen als Konstanten deklariert. Aber const kann mehr als nur Konstanten deklarieren. Es kann auch Const-Pointers und Const-Member-Functions (Elementfunktionen) deklarieren.
Const-Deklarationen
Da Const-Deklarationen nur ein einziges Keyword verwenden, das sich auf drei verschiedene Konstrukte bezieht, können sie recht verwirrend sein. Schauen wir uns diese Konstrukte im Einzelnen an.
Const-Objekte
Deklariert man ein Objekt als const (der Begriff Objekt wird hier im weiteren Sinne verwendet: ein Objekt ist ein Speicherbereich, in dem eine Variable oder ein Klassenobjekt gespeichert ist), stellt man damit sicher, dass das Programm dieses Objekt nicht modifiziert. Eine Const-Definition muss einen passenden Initialisierer beinhalten. Listing A enthält verschiedene Instanzen von Const-Objekten.
Const-Pointers
Die Deklaration eines Pointers als const stellt sicher, dass der Programmierer diesem Pointer im Nachhinein keine neue Adresse zuweisen kann. Wie in Listing B gezeigt, ist das an diesen Pointer gebundene Objekt auch weiterhin modifizierbar.
Const-Member-Functions
Der Zustand eines Klassenobjekts besteht aus den Werten seiner nicht statischen Datenelemente. Eine Elementfunktion (Member Function), die den Zustand ihres Objekts nicht verändert, sollte als const deklariert werden. Dies wird gemacht, indem man nach der Parameterliste const anfügt. Zum Beispiel:
Man muss erkennen, dass Const-Elementfunktionen ein bedeutender Bestandteil der Sprache ‚Design by Contract‘ sind: Sie gewährleisten, dass das, was der Programmierer vorhat (z.B. den Zustand des Objekts unverändert zu erhalten), vom Compiler durchgesetzt wird. Der Versuch, ein Datenelement von innerhalb eines Const-Elements zu modifizieren, ruft einen Kompilierungsfehler hervor:
Zusätzlich dokumentiert die Konstante das Verhalten der Funktion.
Mit dem Tool können Unternehmen KI-Agenten mithilfe synthetisch generierter Daten testen, um präzise Antworten und…
Kostengünstiger Mini-PC mit AMD Ryzen 7 5825U-Prozessor, 16 GB Arbeitsspeicher (RAM) und 512 GB SSD.
Bösartige QR-Codes, die per E-Mail versendet werden, eignen sich sehr gut, um Spam-Filter zu umgehen.
Unsichere Websites und Phishing-Mails in Verbindung mit Black Friday können kauffreudigen Konsumenten zum Verhängnis werden.
Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.
Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.