Il paradigma della programmazione orientata agli oggetti è prevalente in tutti i moderni strumenti e linguaggi per la creazione di software. Lo standard del settore oggi è il linguaggio di programmazione orientato agli oggetti C++. Puoi creare un'istanza di una classe in C++ in diversi modi.
È necessario
Compilatore C++
Istruzioni
Passo 1
Istanzia la classe come variabile automatica nell'ambito locale definito da una funzione, un metodo di classe o un blocco di istruzioni. Utilizzare una definizione dichiarativa o imperativa di un oggetto classe in una posizione selezionata nel programma. Se necessario, effettuare una chiamata esplicita a qualsiasi costruttore con parametri. Creare un oggetto utilizzando un codice simile al seguente: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // crea un oggetto utilizzando il costruttore predefinito COtherClass oSomeObject2 (1980, "Victor V. Vakchturov"); // creazione di un oggetto utilizzando un costruttore con parametri} La memoria per oggetti di classi creati in modo simile, come per qualsiasi altra variabile automatica, è allocata nello stack. Pertanto, quando si esce dall'ambito e si rimuove lo stack frame, l'oggetto verrà distrutto (con una chiamata al distruttore).
Passo 2
Crea un'istanza della classe nell'heap usando l'operatore new. Definire una variabile di tipo puntatore agli oggetti della classe da istanziare. Dagli un valore che sia il risultato della valutazione del nuovo operatore. Chiama il costruttore appropriato. Utilizzare un frammento di codice simile al seguente: CSomeClass * poSomeObject; // definizione di un puntatore a oggetti della classe CSomeClasspoSomeObject = new CSomeClass; // Crea un oggetto della classe CSomeClass * poSomeObject_2 = new CSomeClass (111, "3V"); // creazione con una chiamata al costruttore con parametri Quando si creano oggetti con questo metodo, viene utilizzato il meccanismo di allocazione della memoria definito dall'operatore new (se non viene sovrascritto e non viene impostata la propria funzione di allocazione), quindi l'indirizzo del nuovo oggetto non è noto in anticipo. Tutti gli oggetti creati in questo modo devono essere eliminati in modo esplicito utilizzando l'operatore delete.
Passaggio 3
Crea un'istanza della classe usando l'operatore new su un pezzo di memoria auto-allocato. Utilizzare un codice simile al seguente: void * p0 = malloc (sizeof (CSomeClass)); // allocazione della memoria void * p1 = malloc (sizeof (CSomeClass)); // allocazione della memoria new (p0) CSomeClass; // inizializza l'oggetto sulla memoria allocata (costruttore predefinito) new (p1) CSomeClass (111, "abc"); // inizializzazione dell'oggetto (costruttore con parametri) Prima di distruggere gli oggetti creati con questo metodo, è necessario chiamare esplicitamente il loro distruttore: ((CSomeClass *) p0) -> ~ (); La creazione di oggetti in questo modo viene utilizzata principalmente nelle classi contenitore di modelli di varie librerie (come STL).