Der Modifikator
const gibt eine Konstante an und der Wert kann nicht geändert werden; der Modifikator static gibt die Lebensdauer und den Gültigkeitsbereich der Variablen an. Durch const geänderte Datenelemente können nach der Initialisierung nicht geändert werden. Durch static geänderte Variablen werden beim Programmstart initialisiert und beim Programmende zerstört. Sie sind auch dann vorhanden, wenn kein aktives Objekt vorhanden ist, und es kann funktionsübergreifend darauf zugegriffen werden. Durch const geänderte lokale Variablen müssen bei der Deklaration initialisiert werden, während durch static geänderte lokale Variablen später initialisiert werden können. Mit Const geänderte Klassenmitgliedsvariablen müssen im Konstruktor oder in der Initialisierungsliste initialisiert werden, während statisch geänderte Klassenmitgliedsvariablen außerhalb der Klasse initialisiert werden können.
Der Unterschied zwischen const und static in C++
Einfacher und klarer Unterschied:
- Der const-Modifikator stellt eine Konstante dar, deren Wert nicht geändert werden kann, während das Programm ausgeführt wird. Der statische Modifikator
- gibt die Lebensdauer und den Umfang einer Variablen an.
Detaillierte Erklärung:
const-Modifikator:
- const wird zum Deklarieren von Konstanten verwendet, dh Variablen, deren Werte nicht geändert werden können.
- const-modifizierte Datenelemente können nur im Klassenkonstruktor oder in der Initialisierungsliste initialisiert werden.
- const-Variablen können nicht geändert werden, während das Programm ausgeführt wird, da sonst ein Kompilierungsfehler auftritt.
- const kann auf Objekte, Zeiger oder Referenzen angewendet werden.
statischer Modifikator:
- statisch wird verwendet, um statische Variablen zu deklarieren, dh Variablen, die im gesamten Programm vorhanden sind.
- Statische Variablen werden beim Programmstart initialisiert und beim Programmende zerstört.
- Statische Variablen existieren auch dann, wenn kein Live-Objekt vorhanden ist, und können funktionsübergreifend aufgerufen werden.
- statisch kann auf globale Variablen, Klassenmitgliedsvariablen und lokale Variablen angewendet werden.
Andere Unterschiede:
- Konstant-modifizierte Datenelemente sind schreibgeschützt, während statisch-modifizierte Datenelemente gelesen und geschrieben werden können.
- Const-modifizierte lokale Variablen müssen bei der Deklaration initialisiert werden, während statisch modifizierte lokale Variablen später initialisiert werden können.
- Const-modifizierte Klassenmitgliedsvariablen müssen im Konstruktor oder in der Initialisierungsliste initialisiert werden, während statisch modifizierte Klassenmitgliedsvariablen außerhalb der Klasse initialisiert werden können.
Beispiel:
<code class="cpp">// const 常量
const int MY_CONSTANT = 10;
// static 全局变量
static int global_count;
// static 类成员变量
class MyClass {
public:
static int static_member;
};</code>
Im obigen Beispiel:
- MY_CONSTANT ist eine Konstante und kann nach der Initialisierung nicht mehr geändert werden.
- global_count ist eine statische globale Variable, die im gesamten Programm vorhanden ist.
- MyClass::static_member ist eine statische Klassenmitgliedsvariable, auf die außerhalb der Klasse zugegriffen werden kann.
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen const und static in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn