- - компілятор C ++.
Як створити екземпляр класу
Прочитавши: 3447
Об'єктно-орієнтована парадигма програмування є превалюючою у всіх сучасних засобах і мовами, призначених для створення програмного забезпечення. Індустріальним стандартом сьогодні є об'єктно-орієнтована мова програмування C ++. Створити екземпляр класу в C ++ можна кількома різними способами.
Вам знадобиться
Інструкція
Створіть екземпляр класу як auto-змінну в локальній області видимості, обумовленою функцією, методом класу або операторних блоком. Використовуйте декларативне або імперативне визначення об'єкта класу в обраному місці програми. При необхідності здійсните явний виклик будь-якого конструктора з параметрами. Створіть об'єкт за допомогою коду, аналогічного наступного: void CMyClass :: SomeMethod () {COtherClass oSomeObject1- // створення об'єкта за допомогою конструктора за замовчуванням COtherClass oSomeObject2 (1980, "Victor V. Vakchturov") - // створення об'єкта за допомогою конструктора з параметрами} Пам'ять під об'єкти класів, створюваних подібним способом, як і під будь-які інші auto-змінні, виділяється на стеку. Тому при виході з області видимості і видаленні Фрема стека, об'єкт буде знищений (з викликом деструктора).
Створіть екземпляр класу в області динамічно розподіляє пам'яті за допомогою оператора new. Визначте змінну типу покажчика на об'єкти класу, екземпляр якого повинен бути створений. Надайте йому значення, що є результатом обчислення оператора new. Викликайте відповідний конструктор. Використовуйте фрагмент коду, аналогічний наступного: CSomeClass * poSomeObject- // визначення покажчика на об'єкти класу CSomeClasspoSomeObject = new CSomeClass- // Створення об'єкта класуCSomeClass * poSomeObject_2 = new CSomeClass (111, "3V") - // створення з викликом конструктора з параметрами При створенні об'єктів даним методом використовується механізм виділення пам'яті, який визначається оператором new (якщо він не перевизначений і не встановлена власна функція розподілу), тому адреса нового об'єкта заздалегідь не відомий. Всі об'єкти, створені подібним чином, повинні бути явно видалені оператором delete.
Створіть екземпляр класу за допомогою оператора new на самостійно виділеному фрагменті пам'яті. Використовуйте код, подібний наступного: void * p0 = malloc (sizeof (CSomeClass)) - // виділення памятіvoid * p1 = malloc (sizeof (CSomeClass)) - // виділення памятіnew (p0) CSomeClass- // ініціалізації об'єкту на виділеної пам'яті ( конструктор за замовчуванням) new (p1) CSomeClass (111, "abc") - // ініціалізація об'єкта (конструктор з параметрами) Перед знищенням об'єктів, створених даним методом, варто явно викликати їх деструктор: ((CSomeClass *) p0) -> ~ () -Створення об'єктів подібним чином в основному використовується в шаблонних класух-контейнерах різних бібліотек (таких як STL).