Indholdsfortegnelse:

Hvilken operator bruges til at allokere et objekt dynamisk af en klasse i C++?
Hvilken operator bruges til at allokere et objekt dynamisk af en klasse i C++?

Video: Hvilken operator bruges til at allokere et objekt dynamisk af en klasse i C++?

Video: Hvilken operator bruges til at allokere et objekt dynamisk af en klasse i C++?
Video: Полный курс TypeScript за час | Тайпскрипт для начинающих 2024, November
Anonim

C++ understøtter dynamisk tildeling og deallokering af genstande bruge den nye og slette operatører . Disse operatørerne tildeler hukommelse for genstande fra en pulje kaldet den gratis butik. Den nye operatør kalder specialfunktionen operatør ny og slet operatør kalder specialfunktionen operatør slette.

Hvordan allokerer du på denne måde dynamisk en række objekter i C++?

C++ Noter: Dynamisk tildeling af arrays

  1. Problemerne med arrays med fast størrelse. Erklære et array med en fast størrelse som.
  2. Erklær array som en pointer, allokér med ny. For at oprette en variabel, der peger på et dynamisk allokeret array, skal du erklære det som en pegepind til elementtypen.
  3. Tildel et array med code>new.
  4. Frigør hukommelse med slet.
  5. Eksempler.

Derudover, hvordan allokerer og deallokerer du hukommelse dynamisk i C++? C bruger malloc() og calloc() funktionen til allokere hukommelse dynamisk ved køretid og bruger free()-funktionen til at frigøre dynamisk tildelt hukommelse . C++ understøtter disse funktioner og har også to operatører nye og slette, der udfører opgaven med tildeling og frigør hukommelse på en bedre og nemmere måde.

På samme måde kan man spørge, hvordan laver man en C++ klasse, hvis objekter kun kan allokeres dynamisk?

  1. Kan ikke lade sig gøre. Det eneste du kan gøre er at gøre konstruktøren privat og have en statisk fabrik, der konstruerer en ny forekomst af klassen. –
  2. At oprette sådan en klasse er bestemt et problem.
  3. Det er et meget mærkeligt krav.

Hvordan begrænser jeg dynamisk allokering af et objekt i C++?

Stak baseret genstande er implicit styret af C++ compiler. De bliver ødelagt, når de går ud af anvendelsesområdet og dynamisk allokerede objekter skal frigives manuelt, ellers bruge delete-operatoren hukommelse lækage opstår. C++ understøtter ikke automatisk affaldsindsamlingsmetode, der bruges af sprog som Java og C#.