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

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

Видео: Как да огранича динамичното разпределение на обект в C++?
Видео: MATLAB для анализа бумаг с фиксированной доходностью 2024, Декември
Anonim

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

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

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

Освен това, можем ли да разпределим памет за обектите динамично в CPP? Динамично разпределение на паметта за Обекти, които можем също динамично разпределяне на обекти . Като ние Знайте, че конструкторът е функция-член на клас, който се извиква всеки път, когато е нов обект е създаден от този клас. Деструкторът също е функция член на класа, която се извиква винаги, когато обект излиза извън обхвата.

Хората също така питат, как се прави C++ клас, чиито обекти могат да бъдат само динамично разпределени?

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

Защо трябва да правим динамична инициализация на обекти?

В Динамична инициализация на обекти означава да инициализирайте членовете на данните на класа, докато създавате обект . Кога ние искаме за предоставяне на начални или стойности по подразбиране на членовете на данните по време на създаване на обект - Имаме нужда от да използвам динамична инициализация на обекти.