Cum Să Instanțiați O Clasă

Cuprins:

Cum Să Instanțiați O Clasă
Cum Să Instanțiați O Clasă

Video: Cum Să Instanțiați O Clasă

Video: Cum Să Instanțiați O Clasă
Video: Instantiating a Class in Python 2024, Noiembrie
Anonim

Paradigma de programare orientată pe obiecte este predominantă în toate instrumentele și limbajele moderne pentru crearea de software. Standardul industrial din prezent este limbajul de programare orientat obiect C ++. Puteți crea o instanță a unei clase în C ++ în mai multe moduri diferite.

Cum să instanțiați o clasă
Cum să instanțiați o clasă

Este necesar

compilator C ++

Instrucțiuni

Pasul 1

Instantați clasa ca o variabilă automată în domeniul local definit de o funcție, o metodă de clasă sau un bloc de instrucțiuni. Utilizați o definiție declarativă sau imperativă a unui obiect de clasă la o locație selectată din programul dvs. Dacă este necesar, efectuați un apel explicit către orice constructor cu parametri. Creați un obiect folosind un cod similar cu următorul: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // creați un obiect folosind constructorul implicit COtherClass oSomeObject2 (1980, "Victor V. Vakchturov"); // crearea unui obiect folosind un constructor cu parametri} Memoria pentru obiectele din clasele create în mod similar, ca pentru orice alte variabile automate, este alocată pe stivă. Prin urmare, când ieșiți din scop și eliminați cadrul stivei, obiectul va fi distrus (cu un apel către distructor).

Pasul 2

Creați o instanță a clasei în heap utilizând noul operator. Definiți o variabilă de tip pointer la obiectele clasei de instanțiat. Acordați-i o valoare care este rezultatul evaluării noului operator. Apelați constructorul corespunzător. Utilizați un fragment de cod similar cu următorul: CSomeClass * poSomeObject; // definirea unui pointer la obiecte din clasa CSomeClasspoSomeObject = new CSomeClass; // Creați un obiect din clasa CSomeClass * poSomeObject_2 = new CSomeClass (111, "3V"); // crearea cu un apel către constructor cu parametri La crearea obiectelor prin această metodă, se folosește mecanismul de alocare a memoriei definit de noul operator (dacă nu este suprascris și propria funcție de alocare nu este setată), deci adresa obiectul nou nu este cunoscut în prealabil. Toate obiectele create în acest mod trebuie șterse în mod explicit folosind operatorul de ștergere.

Pasul 3

Creați o instanță a clasei utilizând noul operator pe o bucată de memorie autoalocată. Utilizați cod similar cu următorul: void * p0 = malloc (sizeof (CSomeClass)); // alocare memorie void * p1 = malloc (sizeof (CSomeClass)); // alocare memorie new (p0) CSomeClass; // inițializați obiectul pe memoria alocată (constructor implicit) nou (p1) CSomeClass (111, "abc"); // inițializarea obiectelor (constructor cu parametri) Înainte de a distruge obiectele create prin această metodă, ar trebui să apelați în mod explicit distructorul lor: ((CSomeClass *) p0) -> ~ (); Crearea obiectelor în acest mod este utilizată în principal în clasele de containere șablon de diverse biblioteci (cum ar fi STL).

Recomandat: