Обектно-ориентираната парадигма за програмиране е широко разпространена във всички съвременни инструменти и езици за създаване на софтуер. Днес индустриалният стандарт е обектно-ориентираният език за програмиране C ++. Можете да създадете екземпляр на клас в C ++ по няколко различни начина.
Необходимо е
C ++ компилатор
Инструкции
Етап 1
Инстанцирайте класа като автоматична променлива в локалния обхват, дефиниран от функция, метод на клас или операторски блок. Използвайте декларативна или императивна дефиниция на обект от клас на избрано място във вашата програма. Ако е необходимо, направете изрично извикване на всеки конструктор с параметри. Създайте обект, използвайки код, подобен на следния: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // създаване на обект с помощта на конструктора по подразбиране COtherClass oSomeObject2 (1980, "Виктор В. Вакчуров"); // създаване на обект с помощта на конструктор с параметри} В стека се разпределя памет за обекти от класове, създадени по подобен начин, както за всякакви други променливи. Следователно, когато излезете от обхвата и премахнете рамката на стека, обектът ще бъде унищожен (с извикване на деструктора).
Стъпка 2
Създайте екземпляр на класа в купчината с помощта на новия оператор. Дефинирайте променлива от тип указател към обекти от класа, който ще бъде създаден. Дайте му стойност, която е резултат от оценката на новия оператор. Извикайте подходящия конструктор. Използвайте кодов фрагмент, подобен на следния: CSomeClass * poSomeObject; // дефиниция на указател към обекти от класа CSomeClasspoSomeObject = new CSomeClass; // Създаване на обект от клас CSomeClass * poSomeObject_2 = нов CSomeClass (111, "3V"); // създаване с извикване на конструктора с параметри При създаването на обекти по този метод се използва механизмът за разпределение на паметта, дефиниран от новия оператор (ако не е заменен и собствената му функция за разпределение не е зададена), така че адресът на нов обект не е известен предварително. Всички обекти, създадени по този начин, трябва да бъдат изрично изтрити с помощта на оператора за изтриване.
Стъпка 3
Създайте екземпляр на класа, като използвате новия оператор на саморазпределен парче памет. Използвайте код, подобен на следния: void * p0 = malloc (sizeof (CSomeClass)); // разпределение на паметта void * p1 = malloc (sizeof (CSomeClass)); // разпределение на паметта new (p0) CSomeClass; // инициализиране на обекта в разпределената памет (конструктор по подразбиране) new (p1) CSomeClass (111, "abc"); // инициализация на обект (конструктор с параметри) Преди да унищожите обекти, създадени от този метод, трябва изрично да извикате техния деструктор: ((CSomeClass *) p0) -> ~ (); Създаването на обекти по този начин се използва главно в класове контейнери на шаблони на различни библиотеки (като STL).