Latest web development tutorials

C ++ Speicherklasse

Lagerklasse definiert eine C ++ Programmvariablen / Funktionsbereich (Sichtbarkeit) und Lebenszyklus. Diese Bezeich platziert, bevor sie die Art ändern. Im Folgenden sind Speicherklasse C ++ Programme stehen zur Verfügung:

  • auto
  • registrieren
  • statisch
  • extern
  • veränderlich

Auto-Speicherklasse

Auto - Storage - Klasse ist alle lokalen Variablen Standardspeicherklasse.

{
   int mount;
   auto int month;
}

Das obige Beispiel definiert zwei Variablen mit dem gleichen Speicherklasse, Auto kann nur innerhalb einer Funktion verwendet werden, nämlich Auto ändert nur die lokale Variable.

registrieren Speicherklasse

registrieren Speicherklasse wird verwendet , die in den Registern anstelle von RAM in den lokalen Variablen zu definieren , gespeichert.Dies bedeutet, dass die maximale Größe der Variablen auf die Größe des Registers (normalerweise ein Wort) entspricht, und nicht, um es unären angewendet werden kann "&" operator (weil es keine Speicherstelle aufweist).

{
   register int  miles;
}

Benötigen Sie nur für einen schnellen Zugriff auf Variablen, wie zB Zählerregister. Es sollte auch angemerkt werden, dass die Definition von "Register" bedeutet nicht, dass Variable in einem Register gespeichert werden, bedeutet dies, dass die Variable in einem Register gespeichert werden kann, abhängig von den Beschränkungen der Hardware und Implementierung.

statische Speicherklasse

statische Speicherklasse weist den Compiler an die Existenz von lokalen Variablen im Programm des Lebenszyklus zu halten, ohne dass sie jedes Mal , wenn Sie außerhalb des Bereichs eingeben und erzeugt und zerstört werden.Daher kann die Verwendung von statischen lokalen Variablen geändert werden, um den Wert der lokalen Variablen zwischen Funktionsaufrufe zu halten.

statische Modifier kann auf globale Variablen angewendet werden. Wenn die statische globale Variable verändert, wird die Variable, die den Umfang der Erklärung in seinen Dateien begrenzen.

In C ++, wenn sie auf statische Klassendatenelemente verwendet wird, werden alle Objekte in nur einer Kopie der Klasse führen Mitgliedern gemeinsam genutzt werden.

#include <iostream>
 
// 函数声明 
void func(void);
 
static int count = 10; /* 全局变量 */
 
int main()
{
    while(count--)
    {
       func();
    }
    return 0;
}
// 函数定义
void func( void )
{
    static int i = 5; // 局部静态变量
    i++;
    std::cout << "变量 i 为 " << i ;
    std::cout << " , 变量 count 为 " << count << std::endl;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

变量 i 为 6 , 变量 count 为 9
变量 i 为 7 , 变量 count 为 8
变量 i 为 8 , 变量 count 为 7
变量 i 为 9 , 变量 count 为 6
变量 i 为 10 , 变量 count 为 5
变量 i 为 11 , 变量 count 为 4
变量 i 为 12 , 变量 count 为 3
变量 i 为 13 , 变量 count 为 2
变量 i 为 14 , 变量 count 为 1
变量 i 为 15 , 变量 count 为 0

extern Speicherklasse

extern Speicherklasse verwendet wird , einen Verweis auf eine globale Variable zur Verfügung zu stellen, sind die globale Variable für alle Programmdateien sichtbar.Wenn Sie 'extern' verwenden, die eine Variable nicht initialisiert werden kann, wird der Variablenname zu einem vorher definierten Speicherort verweisen.

Wenn Sie mehrere Dokumente haben und eine globale Variable oder Funktion definieren , die in anderen Dokumenten verwendet werden können, können Sieexternin anderen Dateien verwenden , um eine Variable oder Funktion definiert Verweis erhalten. Es kannverstanden werden,extern verwendet, um eine globale Variable oder Funktion in einer anderen Datei zu deklarieren.

Modifizierer extern wird in der Regel verwendet, wenn es zwei oder mehrere Dateien die gleichen globalen Variablen oder Funktionen der Zeit zu teilen, wie folgt:

Erste Datei: main.cpp

#include <iostream>
 
int count ;
extern void write_extern();
 
int main()
{
   count = 5;
   write_extern();
}

Die zweite Datei: support.cpp

#include <iostream>
 
extern int count;
 
void write_extern(void)
{
   std::cout << "Count is " << count << std::endl;
}

Hier wird die zweite DateiexternSchlüsselwort verwendet , um den ersten Zählwert zu erklären hat in der Datei main.cpp in der definiert. Nun kompilieren Sie beide Dateien, wie folgt:

$ g++ main.cpp support.cpp -o write

Dies erzeugtschreiben ausführbare Programm versucht , Schreib auszuführen,wird es die folgenden Ergebnisse liefern:

$ ./write
Count is 5

veränderbare Speicherklasse

wandelbar Bezeich gilt nur für Objektklassen, die am Ende dieses Tutorials wird zu erklären.Es ermöglicht es den Mitgliedern der Objektersatzkonstanten. Das heißt, wandelbar Mitglied kann durch konstante Elementfunktionen modifiziert werden.