Het objectgeoriënteerde programmeerparadigma is gangbaar in alle moderne tools en talen voor het maken van software. De industriestandaard van vandaag is de objectgeoriënteerde programmeertaal C++. U kunt op verschillende manieren een instantie van een klasse in C++ maken.
Het is nodig
C++-compiler
instructies:
Stap 1
Instantieer de klasse als een automatische variabele in het lokale bereik gedefinieerd door een functie, klassemethode of instructieblok. Gebruik een declaratieve of imperatieve definitie van een klasseobject op een geselecteerde locatie in uw programma. Maak indien nodig een expliciete aanroep van een constructor met parameters. Maak een object met code die lijkt op de volgende: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // maak een object met de standaardconstructor COtherClass oSomeObject2 (1980, "Victor V. Vakchturov"); // een object maken met behulp van een constructor met parameters} Geheugen voor objecten van klassen die op een vergelijkbare manier zijn gemaakt, zoals voor alle andere autovariabelen, wordt op de stapel toegewezen. Daarom, wanneer u de scope verlaat en het stapelframe verwijdert, wordt het object vernietigd (met een oproep aan de destructor).
Stap 2
Maak een instantie van de klasse in de heap met behulp van de nieuwe operator. Definieer een variabele van het type pointer naar objecten van de klasse die moeten worden geïnstantieerd. Geef het een waarde die het resultaat is van het evalueren van de nieuwe operator. Bel de juiste constructeur. Gebruik een codefragment dat lijkt op het volgende: CSomeClass * poSomeObject; // definitie van een pointer naar objecten van de klasse CSomeClasspoSomeObject = new CSomeClass; // Maak een object van de klasse CSomeClass * poSomeObject_2 = new CSomeClass (111, "3V"); // creatie met een aanroep van de constructor met parameters Bij het maken van objecten met deze methode, wordt het geheugentoewijzingsmechanisme gebruikt dat is gedefinieerd door de nieuwe operator (als het niet wordt overschreven en zijn eigen toewijzingsfunctie niet is ingesteld), dus het adres van de nieuw object is niet op voorhand bekend. Alle objecten die op deze manier zijn gemaakt, moeten expliciet worden verwijderd met behulp van de delete-operator.
Stap 3
Maak een instantie van de klasse met behulp van de nieuwe operator op een zelf toegewezen stuk geheugen. Gebruik code die lijkt op de volgende: void * p0 = malloc (sizeof (CSomeClass)); // geheugentoewijzing ongeldig * p1 = malloc (sizeof (CSomeClass)); // geheugentoewijzing nieuw (p0) CSomeClass; // initialiseer het object op het toegewezen geheugen (standaardconstructor) new (p1) CSomeClass (111, "abc"); // objectinitialisatie (constructor met parameters) Voordat u objecten vernietigt die met deze methode zijn gemaakt, moet u expliciet hun destructor aanroepen: ((CSomeClass *) p0) -> ~ (); Het maken van objecten op deze manier wordt voornamelijk gebruikt in sjablooncontainerklassen van verschillende bibliotheken (zoals STL).