Kaip Instancijuoti Klasę

Turinys:

Kaip Instancijuoti Klasę
Kaip Instancijuoti Klasę

Video: Kaip Instancijuoti Klasę

Video: Kaip Instancijuoti Klasę
Video: Instantiating a Class in Python 2024, Gegužė
Anonim

Objektinio programavimo paradigma yra paplitusi visose šiuolaikinėse programinės įrangos kūrimo priemonėse ir kalbose. Šiandien pramonės standartas yra į objektą orientuota programavimo kalba C ++. C ++ klasės egzempliorių galite sukurti keliais skirtingais būdais.

Kaip instancijuoti klasę
Kaip instancijuoti klasę

Tai būtina

C ++ kompiliatorius

Nurodymai

1 žingsnis

Intuituokite klasę kaip automatinį kintamąjį vietinėje sferoje, apibrėžtoje funkcija, klasės metodu ar sakinių bloku. Naudokite deklaratyvų arba imperatyvų klasės objekto apibrėžimą pasirinktoje programos vietoje. Jei reikia, paskambinkite bet kuriam konstruktoriui su parametrais. Sukurkite objektą naudodami kodą, panašų į šį: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // sukurti objektą naudojant numatytąjį konstruktorių COtherClass oSomeObject2 (1980, "Viktoras V. Vakchturovas"); // objekto sukūrimas naudojant konstruktorių su parametrais} Panašiai sukurtų klasių objektų, kaip ir bet kokių kitų automatinių kintamųjų, atmintis paskirstoma rietuvėje. Todėl, kai išeisite iš srities ir pašalinsite rietuvės rėmą, objektas bus sunaikintas (iškviečiant destruktorių).

2 žingsnis

Sukurkite klasės egzempliorių kaupe naudodami naują operatorių. Apibrėžkite rodyklės kintamąjį klasės objektams, kuriuos norite išaiškinti. Suteikite jam vertę, kuri gaunama įvertinus naują operatorių. Paskambinkite atitinkamam konstruktoriui. Naudokite kodo fragmentą, panašų į šį: CSomeClass * poSomeObject; // žymeklio apibrėžimas į klasės objektus CSomeClasspoSomeObject = new CSomeClass; // Sukurkite CSomeClass klasės objektą * poSomeObject_2 = nauja CSomeClass (111, "3V"); // kūrimas su iškvietimu konstruktoriui su parametrais Kuriant objektus šiuo metodu, naudojamas naujojo operatoriaus apibrėžtas atminties paskirstymo mechanizmas (jei jis nepaisomas ir nenustatyta jo paties paskirstymo funkcija), todėl adresas naujas objektas nėra žinomas iš anksto. Visi tokiu būdu sukurti objektai turi būti aiškiai ištrinti naudojant ištrynimo operatorių.

3 žingsnis

Sukurkite klasės egzempliorių naudodamiesi naujuoju operatoriumi savarankiškai paskirstytoje atminties dalyje. Naudokite kodą, panašų į šį: void * p0 = malloc (sizeof (CSomeClass)); // atminties paskirstymas negaliojantis * p1 = malloc (sizeof (CSomeClass)); // atminties paskirstymas naujas (p0) CSomeClass; // inicializuoti objektą paskirtoje atmintyje (numatytasis konstruktorius) new (p1) CSomeClass (111, "abc"); // objektų inicijavimas (konstruktorius su parametrais) Prieš sunaikindami šiuo metodu sukurtus objektus, turėtumėte aiškiai paskambinti jų destruktoriui: ((CSomeClass *) p0) -> ~ (); Tokiu būdu sukuriami objektai dažniausiai naudojami šablonų konteinerių klasėse įvairios bibliotekos (pvz., STL).

Rekomenduojamas: