Az osztály adatok és függvények összessége. Ox-ban minden adattag privát és minden függvény
publikus (C++ terminológiát használva). Csak tagfüggvényeken keresztül lehet adattagokhoz
hozzáférni.
Példa a deklarációra:
A tagfüggvények biztosítanak hozzáférést az adattagokhoz. Tagfüggvényeket csakis az osztállyal
együtt lehet deklarálni, önállóan, utólag nem. A függvény definíciójának a következő formát kell
betartania: Osztálynév :: Függvénynév
Csakis a tagfüggvények használhatják a saját osztályuk adattagjait.
Például:
Az osztály nevével megegyező nevű tagfüggvény a konstruktor. A konstruktorok automatikusan hívódnak
az objektum létrehozásakor és referenciát adnak vissza a létrehozott objektumra. Konstruktornak nem
lehet visszatérési értéke.
Csak a konstruktorok változtathatják a konstans adattagokat.
Konstruktor nem lehet statikus.
A destruktor függvény akkor hívódik meg, amikor kérés érkezik az objektum törlésére. A függvény törzse
végrehajtódik az objektum törlése előtt. Általában “takarításra” használják.
A destruktor az a függvény, aminek neve megegyezik az osztályével és előtt egy ~ jel van.
Például: ~Line();
Objektum törlését a delete kulcsszóval lehet kezdeményezni.
Minden nem statikus tagfüggvény rendelkezik this rejtett argumentummal, amely arra az objektumra mutat,
amivel meghívták az adott függvényt. Ha egy x tagra hivatkozunk egy tagfüggvényben, akkor először az
első kérdés, hogy az x kapott paraméter-e, ha nem akkor a this-ben kapott objektum adattagja-e.
Ha ezek közül egyik sem, akkor még lehet globális változó az x. Tehát a lokális változók és kapott
argumentumok elrejtik az adattagokat és ezek együttesen elrejtik a globális változükat. A :: scope
operátorral fel lehet ezt a precedenciát oldani.
Példák:
Egy osztály származtatható egy már deklarált osztályból. Ekkor a gyermek örökli a szülő minden tagját.
A gyerek ezután úgy kezeli a tagokat, mintha sajátjai lennének. Ha névütközés adódik, akkor a gyermekben
definiált tag lesz érvényben a gyerek objektumaira. Teljes scope-pal lehet hivatkozni a szülő tagjaira is.
Az Ox nem támogatja a többszörös öröklődést.
Példák:
Virtuális függvények segítségével a származtatott osztályban az alaposztály virtuális függvényeit fölül lehet definiálni. Ha az alaposztály (ős) meghívja egy virtuális függvényét, akkor valójában a származtatott osztály függvényét fogja használni. Virtuális függvények hívása csak futási időben értékelhető ki, mert akkor ismert az objektum típusa.