Як створити екземпляр класу

Як створити екземпляр класу


Об'єктно-орієнтована парадигма програмування є такою, що переважає в усіх сучасних засобах і мовах, призначених для створення програмного забезпечення. Індустріальним стандартом сьогодні є об'єктно-орієнтована мова програмування C++. Створити екземпляр класу в C++ можна декількома різними способами.


 

Вам знадобиться

  • - компілятор C++.

Інструкція

1. Створіть екземпляр класу як auto- змінну в локальній зоні видимості, визначуваної функцією, методом класу або операторним блоком. Використайте декларативне або імперативне визначення об'єкту класу у вибраному місці програми. При необхідності здійсните явний виклик якого-небудь конструктора з параметрами. Створіть об'єкт за допомогою коду, аналогічного наступному: void CMyClass::SomeMethod(){    COtherClass oSomeObject1;  // створення об'єкту за допомогою конструктора по-умолчанию    COtherClass oSomeObject2(1980, Victor V. Vakchturov);  // створення об'єкту за допомогою конструктора з параметрами}Пам'ять під об'єкти класів, що створюються подібним способом, як і під будь-кого інші auto- змінні, виділяється на стеку. Тому при виході з області видимості і видаленні фрема стека, об'єкт буде знищений(з викликом деструкції).

2. Створіть екземпляр класу в області динамічно розподілюваної пам'яті за допомогою оператора new. Визначте змінну типу покажчика на об'єкти класу, екземпляр якого має бути створений. Присвойте йому значення, що є результатом обчислення оператора new. Викликайте відповідний конструктор. Використайте фрагмент коду, аналогічний наступному: CSomeClass *poSomeObject; // визначення покажчика на об'єкти класу CSomeClasspoSomeObject = new CSomeClass; // Створення об'єкту классаCSomeClass *poSomeObject_2 = new CSomeClass(111, 3V); // створення з викликом конструктора з параметрами При створенні об'єктів цим методом використовується механізм виділення пам'яті, визначуваний оператором new(якщо він не перевизначений і не встановлена власна функція розподілу), тому адреса нового об'єкту заздалегідь не відома. Усі об'єкти, створені так само, мають бути явно видалені оператором delete.

3. Створіть екземпляр класу за допомогою оператора new на самостійно виділеному фрагменті пам'яті. Використайте код, подібний до наступного: void *p0 = malloc(sizeof(CSomeClass)); // виділення памятиvoid *p1 = malloc(sizeof(CSomeClass)); // виділення памятиnew(p0) CSomeClass; // инициализаци об'єкту на виділеній пам'яті(конструктор за умовчанням) new(p1) CSomeClass(111, abc); // ініціалізація об'єкту(конструктор з параметрами) Перед знищенням об'єктів, створених цим методом, варто явно викликати їх деструкцію:((CSomeClass*) p0) ->~();Створення об'єктів так само в основному використовується в шаблонних класах-контейнерах різних бібліотек(таких як STL).