Beépített típus, alaptípus, primitív típus, elemi típus, egyszerű típus ugyanazt jelenti?
Többé kevésbé. Alap esetben 2 fő típus fajta van:
- Primitív (Java primitívnek hívja, C# beépítettnek). Ezek az "int", "long", "char", stb.
- Objektum alapú (Java Wrapper class-nak, C# referancia típusnak hívja).
Ezek a primitív objektum típusok megfelelői. Nyelv függvényében van vagy nincs.
A string egy egyéni eset szokott lenni. Csak objektum típusként van jelen Java vagy C#-ban.
Persze van az általad definiált típusok is.
a) C++ban pl. tudsz valami alapján egyéni "primitív"-et is csinálni, ami primitív és valamilyen szabály alapján csinálja. Amolyan rövidítés.
b) De ha "class"-al írsz egy objektumot, akkor az is felfogható valamilyen típusnak, csak a "new" parancsal objektum példányokat csinálsz vele, amiket majd használsz.
Nem ugyanazt jelenti.
Az elemi tipusok olyasfélék mint az atomok. Nem oszthatók fel más, kisebb tipusra vagy tipusokra. Pl ilyen a byte (ami PC-s környezetben nem bontható fel bitekre).
De vannak a felhasználó által definiált tipusok is, amelyek fő tualdonságaik (méret, rajta végezhető műveletek halmaza, stb) okán sorolhatók az elemi tipusok közé, mégsem a nyelv saját, elemi - ha úgy tetszik, beépített - típusai.
"De ha "class"-al írsz egy objektumot, akkor az is felfogható valamilyen típusnak"
Nem hogy felfogható, hanem a class kifejezetten arra való, hogy a felhasználó típust hozzon létre vele.
Visszatérve a feltett kérdésre:
A felsoroltak elég hasonló fogalmak, de azért nem mindegyik teljesen ugyanazt jelenti, ill. programozási nyelvenként is eltérő lehet némileg a szóhasználat, bár nagyrészt ezek azért általánosan használt elnevezések.
A C++-ból hozott példákkal tudnám megvilágítani a dolgot:
* Alaptípusok: Olyan típusok, melyeket nem lehet más típusokból felépíteni. Ilyenek a char, int, bool, double, stb. A primitív/elemi/egyszerű típus elnevezések ennek gyakorlatilag a szinonímái, de a C++ nem nagyon használja ezeket az elnevezéseket.
* Az alaptípusokból bizonyos operátorokkal származtatható típusokat kapunk: ilyenek a mutató (pl. int*), referencia (pl. double&) és a tömb típusok (pl. float[]). Ezeknek a C++-ban nincs külön megnevezésük, talán származtatott típusoknak lehetne őket nevezni, bár ez félrevezető, mert származtatni más, akár felhasználói típusokból is lehet, egész más eszközökkel.
* Az alaptípusokat és az imént említett "származtatott" típusokat együttesen beépített típusoknak nevezik, mert azokat a nyelv alapból adja, további definíciók nélkül is rendelkezésre állnak.
* Ezekkel szemben vannak a felhasználói típusok, melyeket a felhasználónak kell definiálnia. Ilyenek az osztályok (class, struct) és a felsorolási típusok (enum).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!