Syntaks:
Følgende er syntaks for Make_unique -pekeren:
mal unikt_ptr make_unique (args);
I syntaksen over "klasse T" er den typen den unike pekeren peker og "args. En annen parameter som noen ganger sendes til denne funksjonen er "størrelse" som brukes til å tildele minneskanten til antall elementer som blir gitt til den. Typen av objektet for make_unique -funksjonen føres i vinkelfester der verdiene som objektpekeren punkter føres til i parentes.
Eksempel # 01:
La oss utføre et eksempel der vi vil opprette et objekt som vil skrive ut meldingen for brukeren i bekreftelsen av om make_unique er vellykket opprettet en unqiue_ptr eller ikke. Nå, inkludert overskriftsfilene, er den første minnet og den andre er Isotream. Minne brukes til å gi verktøyene for å håndtere dynamisk minnetildeling. Iostream brukes til å utføre forskjellige input-output-operasjoner. Etter å ha inkludert overskriftsfilene våre, oppretter vi en klasse som heter "Mkunique". Inne i denne klassen lager vi en funksjon som heter “show ()”. For å håndtere meldingsdisplayet på objektet, ring ved hjelp av make_unique -pekeren.
Show () -metoden vil bli kalt ved hjelp av den unike pekeren som vi har erklært i hovedfunksjonen vår. Nå, videre til hovedfunksjonen der vi initialiserte en unik peker “P” av type og “mkunique” -klasse som vi tildelte en make_unique -medlemsfunksjon av typen “mkunique”. Etter det ved å bruke den pekeren “P”, vil vi kalle Show () -metoden ved hjelp av “->” -operatøren som brukes til å få tilgang til funksjonen til objektklassen ved hjelp av pekere.
#inkludere
#inkludere
klasse Mkunique
offentlig:
void show ()
std :: cout
La oss sjekke utdataene våre der meldingen vises med hell. Dette betyr at vi kan lage en unik peker ved hjelp av make_unique -medlemsfunksjonen.
Eksempel # 02:
Nå skal vi utføre et annet eksempel der vi vil lage en matrise ved hjelp av en smart peker og vil få verdiene som blir passert i den. Etter å ha inkludert overskriftsfilene våre, som det var i eksemplet ovenfor, vil IOostream og Memory Header -filen dykke inn i hovedfunksjonen vår. Vi har erklært en bilpeker “mk_unique”, en bil er en datatype som brukes til å erklære en pekertypevariabel. Til mk_unique tildelte vi "make_unique" medlemsfunksjonen til typen array, der "8" er størrelsen på matrisen. Det betyr at MK_UNIQUE -variabelen nå er en unik peker som vil håndtere spekten av størrelse mindre enn "8".
Neste, ved å bruke for -loopen, skal vi lagre verdiene i vår matrise ved å bruke variabelen “k”. For Loop starter fra “0” og slutter med verdien “7”. Det starter fra 0 til mindre enn 8 til den siste indeksen er oppfylt. Den vil utføre den indre koden med økt 1. Inne. Og deretter ved å bruke "cout" -uttalelsen, viste vi disse verdiene ved å bruke make_unique -pekeren "mk_unique".
#inkludere
#inkludere
int main ()
auto mk_unique = std :: make_unique(8);
for (int k = 0; k < 8; ++k)
mk_unique [k] = k;
std :: cout << mk_unique[k] << std::endl;
Som vist i utdraget nedenfor, trykket verdiene som vi sendte til pekerarrayen verdiene fra 1 til 7 fordi matrisindeksen starter fra 0, så fra 0 til 7 lagrer verdiene som vi passerte ved å bruke for loop fra 1 til 7 til 7. Når sløyfen starter for første gang, vil den sjekke tilstanden om K er mindre enn "8" eller ikke. Deretter utfører den verdien som er lagret i indeksen 0 som er 1. Etter det vil det øke det med 1 og så videre til tilstanden er falsk.
Eksempel # 03:
Nå vil vi prøve en enkel måte å lage en unik peker ved hjelp av make_unique -medlemsfunksjonen. Deretter vil vi skrive ut verdien ved å bruke pekeren som vi skal lage. La oss først inkludere toppfiler og deretter ta turen mot hovedfunksjonen vår der vi har erklært en unik peker som heter "P" av Type -heltall. Dette betyr at den vil holde heltallsverdien. Til den pekeren tildelte vi en make_unique peker av heltallstype som vi passerte verdien “123” som et argument som vil bli lagret i minneskuffen. Til slutt har vi vist verdien som er lagret i minnet ved å bruke “*P”, noe som betyr at den vil vise verdien av den unike pekeren “P”, Asterisk “*” brukes til å få tilgang til pekeren.
#inkludere
#inkludere
STD :: Unique_PTRp = std :: make_unique (123);
std :: cout << *p;
Som vist på figuren nedenfor vises utgangen til koden som er utført ovenfor. Vi viste verdien av den unike pekeren “P” som var “123” uten å ha noen feil.
Konklusjon
I denne guiden har vi forklart metodene for hvordan make_unique -medlemsfunksjonen brukes til å lage en unik_punkt. Make_unique er den mer effektive måten å erklære en peker av en unik type, disse pekerne blir ødelagt når den beveger seg ut av omfanget. Make_unique er den tryggeste måten å lage et midlertidig minneplass i minneskuffen.