Wie man ein Array mit Klasse in C++ dynamisch zuweisen

September 14

Wie man ein Array mit Klasse in C++ dynamisch zuweisen

Im grundlegenden C++-Programmierung Variablen und Arrays vom Programmierer direkt im Code deklariert. Allerdings muss beim Erstellen von Datenstrukturen wie Arrays dynamisch zu ändern, um dynamisch Speicher während der Codeausführung der Programmierer lernen. Arrays zugewiesen, die auf diese Weise haben einige Vorteile, z. B. konstanter Länge in der Erklärung. Der Programmierer kann identisch Arrays von skalaren Datentypen und benutzerdefinierten Klassen zuweisen. Mit Zeigern und Schlüsselwörter in der Standardbibliothek integriert, macht C++ Memory Allocation und Löschung einfach.

Anweisungen

1 Erstellen Sie einen Zeiger des Datentyps, die das Array enthalten soll. Beispielsweise muss ein ganze Zahl Zeiger zum dynamischen Erstellen von ein Array von Ganzzahlen vorhanden sein, um das Array zu verweisen:

Int * Arr_ptr;

Der Zeiger können "Arr_ptr" jetzt ein Programmierer auf Tiefe Speicher während der Ausführung zu verweisen.

2 Verwenden Sie den Zeiger auf Speicher reservieren. Das Schlüsselwort "new" Speicher während der Ausführung für den Einsatz des aufrufenden Zeigers behauptet die spezifisch für die C++-Bibliotheken (und nicht erhältlich in standard-C) ist:

Arr_ptr = new Int [6];

Hier greift das Schlüsselwort "new" einen Block von sechs ganzzahlige mittlere Teile des Speichers. Jedoch können im Gegensatz zu Arrays deklariert vor der Laufzeit, dynamische Arrays mit Variableneingabe deklariert werden:

Int i = 6;

Arr_ptr = new Int [i];

Dies ermöglicht die Programmierer, Arrays zu erstellen, die können je nach Bedarf die Größe ändern, anstatt die vorgegebenen Raum-Bezeichnung.

3 Ordnen Sie ein Array von benutzerdefinierten Datentypen. Nach C++ Speicher Vergabeverfahren kann der Programmierer Arrays Datentypen deklariert in separaten Klassen erstellen:

Int i = 5;

NewClass * Class_ptr;

Class_ptr = neue NewClass [i];

Der Zeiger "Class_ptr" wird eine Variable des Datentyps "NewClass", höchstwahrscheinlich definiert in der Beschreibung einer Klasse in einer anderen Datei verweisen.

4 Löschen Sie das Array. Wenn ein Array wird nicht mehr benötigt (oder kopiert wurde, die in einem anderen Array möglicherweise während einer Größenänderung) der Programmierer stellen sicher zu löschen. Reservierten Speicher, der nicht gelöscht, aber nicht mehr referenziert, kann wertvollen Speicher nehmen und im Laufe der Zeit verursachen, was als Speicherverlust bekannt ist.

Int i = 5;

NewClass * Class_ptr;

Class_ptr = neue NewClass [i];

Löschen Sie [Class_ptr];

Nun, das Array verweist "Class_ptr" gelöscht werden und der Speicher freigegeben, für andere Verwendungen.