A C++ adattípusokból, operátorokból, kulcsszavakból és azonosítókból áll. Az azonosítókat a programozó hozza létre, a többi a nyelv részét képezi.
Beépített adattípusok:
int - egész szám. Értéke -2 147 483 648-tól +2 147 483 648-ig, memóriában 4 byte.
float - törtszám. Értéke 3.4*10^-38-tól 3.8*10^+38-ig, memóriában 4 byte.
double - kétszeres pontosságú törtszám. Értéke 2.2*10^-308-tól 1.8*10^306-ig, memóriában 8 byte
char - egyetlen karakter. Értéke bármilyen karakter lehet az ASCII kódtáblából, alfanumerikus (betűk, számok) és bizonyos szimblumok, jelek. Memóriában 1 byte.
bool - logikai típus. Értéke false (hamis) = 0, true (igaz) = 1, vagy bármi ami nem 0 (hamis), memóriában 1 byte helyet foglal.
enum - felsorolás típust hozhatunk vele létre, mely konstansokat tartalmaz. Szintaktikája:
enum autok {audi, BMW, chevrolet}
Itt autok lesz a felsorolás típusunk, és a konstansaink audi, BMW, chevrolet. A konstansok rendre értéket is kapnak, audi=0, BMW=1, chevrolet=2. Ám mi magunk is megadhatunk értéket, pl.:
enum abc {a=-10, b, c=20}
Itt a=-10 lesz, b automatikusan -11, míg a c 20.
Típusminősítők:
Vannak úgynevezett típusminősítők is a nyelvben, melyeket leginkább az int típusra értelmezünk, ezek:
long - hosszú
short - rövid
signed - előjeles
unsigned - előjel nélküli (Ha ezt használjuk, a negatív tartomány helyén 0-tól kezdődően pozitív számoknak foglalhatunk helyet)
Az előjel módosítókkal a típusminősítők szabadon keverhetők.
A szabály csak annyi ezeknek az alkalmazásánál, hogy helyfoglalásban igaz a következő összefüggés:
short int <= int <= long int. A tényleges értékeke az adott rendszertől függnek, de megközelítőleg írok néhány példát:
short int - Értéke -32 768-tól +32 767-ig, 2 byte
unsigned short int - Értéke 0-tól 65 535-ig, 2 byte
long int - Értéke -2 147 483 648-tól 2 147 483 647-ig, 4 byte
unsigned long int 0-tól 4 294 967 295-ig, 4 byte
A típusminősítők önmagukban is jelzik a típust:
short int = short
long int = long
unsigned int = unsigned
signed int = signed
signed long int = signed long
stb.
Típus szinonímák:
A typedef kulcsszóval típusoknak adhatunk szinonim neveket. Ennek a későbbiekben összetett típusoknál fogjuk hasznát látni, de lássunk egy egyszerűbb példát:
typedef unsigned long double uld;
uld nagytort;
Ekkor nem új típust hozunk létre, csak a hosszadalmasan gépelendő unsigned long double helyett a későbbiekben egy rövid uld-dal is létrehozhatjuk a nagytort nevű változónkat. Szerény véleményem szerint azonban az átláthatóság és olvashatóság, karbantarthatóság érdekében inkább a hosszú formát írjuk.
Konstansok:
A konstansokkal biztosíthatjuk, hogy egyes változók állandó értékeket tároljanak, ne lehessen őket megváltoztatni. Pl.:
const float PI = 3.14159265;
Érdekességképp:
A nem beépített adattípusokat header file-ok linkelésével tudjuk használni, így pl. a string típust, ami 255 karaktert tárol, 255 byte-on. Ezt a string.h file tárolja, és sok hasznos fgv-t is tartalmaz a string típushoz, mint az strlen(karakterlanc): visszaadja a karakterlánc hosszát; a strcpy(egyik, masik) bemásolja az egyik stringbe a masikat; strcmp(egyik, masik) összehasonlít két stringet, eredménye negatív, ha egyik<masik, pozitív, ha egyik>masik, és 0, ha egyenlőek.
A legfontosabb ilyen nem beépített típusokat tartalmazó, beágyazandó file-unk az iostream lesz (ld. próbalog), melynek 3 legfontosabb objektuma a cin (beolvasás), cout (kiírás), cerr (hiba-folyam).
Hasznos modul a math.h is: pow (hatványozás), sqrt (gyökvonás), sin, cos, tg fgv-eket tartalmaz, később a használatuknál kifejtem őket.
Van egy szabványosított tárolókat (konténereket), és algoritmusokat tartalmazó gyűjtemény is, ez az STL, azaz Standard Template Library, mely általános fgv-eket, úgynevezett sablonokat tartalmazó könyvtár. Ezekről is később lesz szó.
Nincsenek megjegyzések:
Megjegyzés küldése