type qualifiers storage classes c
Važnost kvalifikatora tipa i klasa pohrane u C ++.
U ovome Ekskluzivna C ++ serija treninga , dalje ćemo proširiti temu varijabli i vidjeti kvalifikatore tipova i klase pohrane u C ++ u ovom vodiču. Iako je ovo mala tema, ona je vrlo važna i značajna što se tiče programiranja na C ++.
Kvalifikatori tipa u C ++-u ne mijenjaju značenje varijabli ili entiteta s kojima se koriste, već entitetu dodaju samo dodatne informacije.
Što ćete naučiti:
Upišite kvalifikacije u C ++
Kvalifikatori tipa u C ++-u dodaju dodatna svojstva varijabli poput varijable koja je konstanta ili nestalna.
Kvalifikatori tipa izražavaju način na koji se pristupa varijabli ili gdje se varijabla sprema u memoriju zadržavajući značenje ili interpretaciju varijable. Na neki način, kvalifikatori tipa dodaju više preciziranja varijablama.
U C ++-u je kvalifikator tipa naveden neposredno prije specifikatora tipa (tip podataka) varijable.
Kvalifikatori tipa u C ++ klasificirani su kako je prikazano u nastavku:
# 1) const
Specifikator tipa 'const' treba definirati objekte tipa const. Const objekt ili varijabla ne mogu se mijenjati nakon što se deklariraju. Ako se pokuša izmijeniti const objekt ili varijabla, tada kompajler pokreće pogrešku. O konstantama / literalima već smo vidjeli u našem prethodnom vodiču.
Definicija konstanti pomoću ključne riječi 'const' odgovara kvalifikatoru tipa 'const'.
# 2) hlapljiv
Kvalifikator tipa „hlapljivo“ znači da se vrijednost varijable označene hlapljivošću može mijenjati na druge načine koji nisu navedeni u programu. Promjenjive varijable mijenjaju se obično zbog nekih vanjskih čimbenika, a ne nužno zbog programa. Drugim riječima, hlapljive su prirode.
kako otvoriti swf datoteku
Na primjer, varijabla koja očitava temperaturu u stvarnoj riječi može se učiniti nestabilnom jer program očitavanja možda neće u potpunosti kontrolirati.
# 3) promjenjiva
Kvalifikator tipa „promjenjiv“ čini članove ili varijablu promjenjivim.
Promjenjivi kvalifikator obično se primjenjuje na nestatične članove klase koji nisu const i non-reference tipa. Prema određenim situacijama, možda će nam trebati neke varijable da ostanu nepromjenjive (ne mogu se mijenjati), a neke varijable da budu promjenjive. Ova vrsta kvalifikatora je od velike pomoći kada želimo promjenjive karakteristike.
Klase pohrane u C ++
Do sada smo detaljno razgovarali o svim varijablama C ++. Vidjeli smo da se varijable deklariraju s njihovim odgovarajućim vrstama podataka, a zatim koriste u programu. Da bismo u potpunosti definirali varijablu, osim njihovih tipova podataka također su nam potrebne klase pohrane.
Iako do sada nismo naveli nijednu klasu pohrane za varijable, postojala je zadana klasa pohrane 'auto' koja je primijenjena na sve varijable.
Dakle, što su razredi za pohranu?
Klase pohrane specificiraju kako prevoditelj treba postupati s varijablom ili funkcijom i kako dodijeliti memoriju za varijablu. Definira vidljivost ili opseg i vijek trajanja varijable. Životni vijek varijable je koliko dugo će varijabla ostati aktivna.
Vidljivost ili opseg varijable je kojim funkcijama ili modulima će varijabla biti dostupna. Te su klase pohrane specificirane prije tipa podataka varijable.
U C ++-u imamo sljedeće klase pohrane:
# 1) Klasa automatske pohrane
Ovo je zadana klasa pohrane. Klasa pohrane 'Auto' primjenjuje se na lokalne varijable i prevoditelj ih automatski dodjeljuje lokalnim varijablama. Lokalne varijable kojima prethodi ključna riječ ‘auto’ ostaju aktivne u funkciji u kojoj su deklarirane i izlaze iz opsega nakon što funkcija izađe.
Ako varijable koje imaju klasu pohrane 'auto' nisu inicijalizirane ili im nije dodijeljena bilo koja vrijednost, tada imaju smeće ili nedefinirane vrijednosti.
Pogledajmo primjer automatskih varijabli u programu C ++.
#include using namespace std; int main() { int i; float f; cout<<'Variable i = '< Kako im nismo dodijelili nikakve vrijednosti, kada ispisujemo ove varijable, vidimo da obje imaju vrijednosti = 0. Ovo u potpunosti ovisi o prevoditelju o tome koje vrijednosti dodijeliti automatski lokalnoj varijabli ako im već nije dodijeljena nikakva vrijednost u programu .
BILJEŠKA: Polazeći od C ++ 11, za auto se koristi ključna riječ auto zaključivanje tipa . To znači da možemo koristiti kod poput auto i = 10, a tip podataka I izravno će se zaključiti iz inicijalizatora koji se koristi za i. Stoga, ako proglasimo nešto poput ‘auto float f;’, tada će kompajler prikazati pogrešku.
Dakle, obično ne koristimo deklaraciju za klasu pohrane auto jer se podrazumijeva da će zadana vrijednost uvijek biti klasa automatske pohrane.
# 2) Registrirajte klasu pohrane
Kada imamo zahtjev da varijabli treba brži pristup, tada koristimo klasu pohrane registra. Dakle, umjesto pohrane varijabli u memoriju slučajnog pristupa (RAM), ove se varijable spremaju u CPU registar i imaju veličinu jednaku veličini registra.
Uz to, budući da ove varijable nemaju memorijsko mjesto, s tim varijablama ne možemo koristiti operator '&'.
Imati varijablu s klasom pohrane Registra ne garantira da će varijabla uvijek biti pohranjena u registru. Umjesto toga, samo pretpostavlja da se varijabla može pohraniti u registar i da u potpunosti ovisi o hardveru i implementaciji.
Varijable registra imaju opseg i vijek trajanja slične automatskim varijablama.
Na primjer,
#include using namespace std; int main() { int i; register float f; cout<<'Variable i = '< # 3) Vanjska klasa za pohranu Klasa eksterne pohrane potrebna je kada varijable treba dijeliti u više datoteka. Vanjske varijable imaju globalni opseg i te su varijable vidljive izvan datoteke u kojoj su deklarirane.
Kako su extern varijable varijable koje su deklarirane i definirane vani u drugoj datoteci, one se ne inicijaliziraju.
Eksterne varijable imaju globalni opseg, a vijek trajanja vanjskih varijabli je onoliko dugo koliko je program u kojem je proglašena ukinutom.
Vanjske varijable mogu se deklarirati na sljedeći način:
extern int temp; int temp;
U gornjem primjeru imamo dvije deklaracije varijabli s istim imenom, ali prva je vanjska varijabla definirana negdje drugdje. Ova eksterna varijabla bit će korisna kada u naš program uključimo izvornu datoteku u kojoj je eksterna varijabla temp definirana.
# 4) Klasa statičke pohrane
Klasa statičke pohrane govori kompajleru da održi vrijednost varijable tijekom cijelog životnog vijeka programa. Statičke varijable slične su lokalnim varijablama, ali im prethodi 'statična' ključna riječ.
Za razliku od lokalnih varijabli koje izlaze iz opsega nakon izlaska funkcije, statičke varijable ne izlaze iz opsega kada funkcija ili blok izlaze i njihove vrijednosti se čuvaju između poziva funkcije.
Statičke varijable se inicijaliziraju i pohrana im se dodjeljuje samo jednom u životnom vijeku programa. Statičke varijable inicijaliziraju se na 0 ako već nisu inicijalizirane tijekom deklaracije.
Pogledajmo sljedeći primjer da bismo bolje razumjeli klasu statičke pohrane.
#include using namespace std; void printvar() { static int var; var++; cout<<'static variable var = '< Izlaz:
printvar poziv 1: statička varijabla var = 1
printvar poziv 2: statička varijabla var = 2
printvar poziv 3: statička varijabla var = 3
u sekundi stvorite lažnu e-adresu
printvar poziv 4: statička varijabla var = 4
U gornjem kodu imamo funkciju ‘printvar’ u kojoj smo deklarirali statičku varijablu tipa tipa int. Zatim povećavamo ovu varijablu i ispisujemo je. U glavnoj funkciji funkciju printvar pozivamo četiri puta.
Sada provjerite izlaz. Izlaz pokazuje da se sa svakim pozivom funkcije statička varijabla var povećava za 1 od svoje prethodne vrijednosti. Ovo je klasa statičke memorije koja pomaže varijabli da održi vrijednost između poziva funkcije. Statička varijabla nije reinicijalizirana za svaki poziv funkcije.
Također bismo trebali primijetiti da smo u funkciji printvar upravo proglasili statičku varijablu i nismo je inicijalizirali. Uočljivo je da kada statičke varijable ne inicijaliziramo, dodjeljuju im se početna vrijednost 0.
Bilješka: Klasa statičke pohrane također se može primijeniti na globalne varijable. U tom će slučaju varijabla imati globalni opseg i dodatno statičku pohranu.
# 5) Promjenjiva klasa za pohranu
Promjenjiva klasa pohrane primjenjuje se samo na objekte klase. Primjenom promjenjive klase memorije, član objekta može nadjačati funkciju člana 'const'. To znači da promjenjivi član ili objekt može mijenjati funkcija člana koja je 'const'.
Saznat ćemo više o const funkcijama i objektima, kao i promjenjivim članovima u našim kasnijim vodičima kad naučimo o objektno orijentiranom programiranju na C ++.
Zaključak
Ovdje se radi o specifikatorima tipova i klasama pohrane u C ++. Nadamo se da smo putem ovog vodiča uspjeli pojasniti sve koncepte klasa pohrane i specifikatora tipova.
U našem nadolazećem tutorialu naučit ćemo više o raznim operatorima koji se koriste u C ++-u, zajedno s njihovom uporabom.
=> Ovdje provjerite cjelovitu seriju obuka za C ++
Preporučena literatura
- Varijable u C ++
- Python varijable
- Java sučelje i udžbenik klase sažetak sa primjerima
- Pretvorbe tipa u C ++
- VBScript varijable: Kako prijaviti i koristiti varijable - VBScript Dim
- JMeter varijable i funkcije
- 10 NAJBOLJIH dobavljača besplatne pohrane u oblaku (internetska pohrana 2021)
- Vrste testiranja migracije: sa scenarijima ispitivanja za svaku vrstu