Съдържание:

Кой оператор се използва за динамично разпределяне на обект от клас в C ++?
Кой оператор се използва за динамично разпределяне на обект от клас в C ++?

Видео: Кой оператор се използва за динамично разпределяне на обект от клас в C ++?

Видео: Кой оператор се използва за динамично разпределяне на обект от клас в C ++?
Видео: Обзор языка программирования Objective-C. Особенности языка программирования Objective-C. 2024, Април
Anonim

C++ поддържа динамичен разпределение и освобождаване на обекти използвайки новото и изтрийте оператори . Тези операторите разпределят памет за обекти от басейн, наречен безплатен магазин. Новото оператор извиква специалната функция оператор нов и изтриване оператор извиква специалната функция оператор Изтрий.

По този начин как динамично разпределяте масив от обекти в C++?

C++ Бележки: Динамично разпределение на масиви

  1. Проблемите с масивите с фиксиран размер. Деклариране на масив с фиксиран размер като.
  2. Декларирайте масив като указател, разпределете с new. За да създадете променлива, която ще сочи към динамично разпределен масив, декларирайте я като указател към типа елемент.
  3. Разпределете масив с код>нов.
  4. Освобождаване на паметта с изтриване.
  5. Примери.

Освен това, как разпределяте и освобождавате памет динамично в C++? C използва функциите malloc() и calloc() за разпределете паметта динамично по време на изпълнение и използва функцията free() за освобождаване динамично разпределени памет . C++ поддържа тези функции и също има два оператора new и delete, които изпълняват задачата на разпределяне и освобождаване на памет по по-добър и лесен начин.

По подобен начин някой може да попита как се прави C++ клас, чиито обекти могат да бъдат само динамично разпределени?

  1. Не може да се направи. Единственото нещо, което можете да направите, е да направите конструктора частен и да имате статична фабрика, която конструира нов екземпляр на класа. –
  2. Създаването на такъв клас със сигурност е проблем.
  3. Това е много странно изискване.

Как да огранича динамичното разпределение на обект в C++?

Базирана на стек обекти се управляват имплицитно от C++ компилатор. Те се унищожават, когато излязат извън обхвата и динамично разпределени обекти трябва да бъде освободен ръчно, като в противен случай се използва оператор delete памет възниква теч. C++ не поддържа подхода за автоматично събиране на боклука, използван от езици като Java и C#.