Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

Speicherklassen in C++

Eine Speicherklasse definiert den Geltungsbereich (Sichtbarkeit) und die Lebensdauer von Variablen und/oder Funktionen innerhalb eines C++-Programms. Diese Bezeichner stehen vor dem Typ, den sie ändern. Es gibt folgende Speicherklassen, die in einem C++-Programm verwendet werden können

Die automatische Speicherklasse

Das auto Speicherklasse ist die Standardspeicherklasse für alle lokalen Variablen.

{
   int mount;
   auto int month;
}

Das obige Beispiel definiert zwei Variablen mit derselben Speicherklasse, auto kann nur innerhalb von Funktionen, also lokalen Variablen, verwendet werden.

Das Register Speicherklasse

Das Register Die Speicherklasse wird verwendet, um lokale Variablen zu definieren, die in einem Register statt im RAM gespeichert werden sollen. Das bedeutet, dass die Variable eine maximale Größe hat, die der Registergröße entspricht (normalerweise ein Wort) und dass der unäre '&'-Operator nicht darauf angewendet werden kann (da sie keinen Speicherplatz hat).

{
   register int  miles;
}

Das Register sollte nur für Variablen verwendet werden, die einen schnellen Zugriff erfordern, wie z. B. Zähler. Es sollte auch beachtet werden, dass die Definition von „Register“ nicht bedeutet, dass die Variable in einem Register gespeichert wird. Das bedeutet, dass es abhängig von Hardware- und Implementierungseinschränkungen in einem Register gespeichert werden KÖNNTE.

Die statische Speicherklasse

Die statische Die Speicherklasse weist den Compiler an, eine lokale Variable während der Lebensdauer des Programms bestehen zu lassen, anstatt sie jedes Mal zu erstellen und zu zerstören, wenn sie in den Gültigkeitsbereich gelangt und aus diesem herausgeht. Wenn Sie lokale Variablen also statisch machen, können sie ihre Werte zwischen Funktionsaufrufen beibehalten.

Der statische Modifikator kann auch auf globale Variablen angewendet werden. Wenn dies geschehen ist, wird der Geltungsbereich dieser Variablen auf die Datei beschränkt, in der sie deklariert ist.

Wenn in C++ static auf einem Klassendatenmember verwendet wird, bewirkt dies, dass nur eine Kopie dieses Members von allen Objekten seiner Klasse gemeinsam genutzt wird.

Live-Demo
#include <iostream>
 
// Function declaration
void func(void);
 
static int count = 10; /* Global variable */
 
main() {
   while(count--) {
      func();
   }
   
   return 0;
}

// Function definition
void func( void ) {
   static int i = 5; // local static variable
   i++;
   std::cout << "i is " << i ;
   std::cout << " and count is " << count << std::endl;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −

i is 6 and count is 9
i is 7 and count is 8
i is 8 and count is 7
i is 9 and count is 6
i is 10 and count is 5
i is 11 and count is 4
i is 12 and count is 3
i is 13 and count is 2
i is 14 and count is 1
i is 15 and count is 0

Die externe Speicherklasse

Die externe Die Speicherklasse wird verwendet, um eine Referenz auf eine globale Variable anzugeben, die für ALLE Programmdateien sichtbar ist. Bei Verwendung von 'extern' kann die Variable nicht initialisiert werden, da sie lediglich den Variablennamen auf einen zuvor definierten Speicherort zeigt.

Wenn Sie mehrere Dateien haben und eine globale Variable oder Funktion definieren, die auch in anderen Dateien verwendet wird, dann extern wird in einer anderen Datei verwendet, um eine Referenz auf eine definierte Variable oder Funktion anzugeben. Nur zum Verständnis von extern wird verwendet, um eine globale Variable oder Funktion in einer anderen Datei zu deklarieren.

Der extern-Modifikator wird am häufigsten verwendet, wenn es zwei oder mehr Dateien gibt, die dieselben globalen Variablen oder Funktionen gemeinsam nutzen, wie unten erklärt.

Erste Datei:main.cpp

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

Zweite Datei:support.cpp

#include <iostream>

extern int count;

void write_extern(void) {
   std::cout << "Count is " << count << std::endl;
}

Hier extern Das Schlüsselwort wird verwendet, um die Anzahl in einer anderen Datei zu deklarieren. Kompilieren Sie nun diese beiden Dateien wie folgt −

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

Dies erzeugt write ausführbares Programm, versuchen Sie write auszuführen und überprüfen Sie das Ergebnis wie folgt −

$./write
5

Die veränderliche Speicherklasse

Die veränderliche Bezeichner gilt nur für Klassenobjekte, die später in diesem Lernprogramm besprochen werden. Es ermöglicht einem Member eines Objekts, die const-Member-Funktion zu überschreiben. Das heißt, ein änderbares Element kann durch eine konstante Elementfunktion geändert werden.


C Sprache

  1. C++-Operatoren
  2. C++-Klassen und -Objekte
  3. C++ Friend-Funktion und Friend-Klassen
  4. C++-Klassenvorlagen
  5. C Lagerklasse
  6. C - Speicherklassen
  7. Polymorphismus in C++
  8. Datenabstraktion in C++
  9. Datenkapselung in C++
  10. Schnittstellen in C++ (Abstrakte Klassen)