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

Об`єктно-орієнтована парадигма програмування є переважаючою у всіх сучасних засобах і мовами, призначених для створення програмного забезпечення. Індустріальним стандартом сьогодні є об`єктно-орієнтована мова програмування 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) -gt; ~ () - Створення об`єктів подібним чином в основному використовується в шаблонних класух-контейнерах різних бібліотек (таких як STL).



Зверніть увагу
Не забувайте видаляти динамічно створені об`єкти оператором delete, інакше пам`ять процесу може закінчитися.
Корисна порада
Застосовуйте розумні покажчики (smart pointers) для ефективного управління динамічно розподіленою пам`яттю.


Увага, тільки СЬОГОДНІ!


Оцініть, будь ласка статтю
Всього голосів: 141
Увага, тільки СЬОГОДНІ!