Mint említettük, három különbözõ szinten érhetjük el egy osztály egyes mezõit. Most tekintsük át részletesen, mit is jelent e három szint.
A private-ként deklarált mezõket csak az ugyanabban az osztályban deklarált függvénymezõk érhetik el. A protected mezõket az ugyanabban az osztályban, és az adott osztályból származtatott további osztályokban definiált függvénymezõk érhetik el. A public mezõk korlátozás nélkül elérhetõk mindenhonnan, ahonnan az adott osztály is elérhetõ.
A struct-tal definiált osztályok mezõi alapértelmezés szerint mind publikusak (public elérésüek), így ahhoz, hogy az igazi egységbezárást megvalósíthassuk, a külvilág elõl elzárandó mezõket mi magunk kell, hogy a private kulcsszóval privátnak deklaráljuk (a private részt esetleg követõ újabb nyilvános részeket megint a public kulcsszóval kell megnyitnunk a külvilág számára). Minthogy egy jó C++ programozó mindent privátnak tekint és csak azt mondja meg külön, hogy mely mezõk publikusak, osztályok definiálására elõnyösebb a class-t használni a struct helyett, ugyanis egy class minden mezõje alapértelmezés szerint private. (Az egyetlen különbség a struct és a class között tehát a mezõhozzáférés alapértelmezésében van.) A point típust class-ként definiálva így célszerû a mezõhozzáférést a következõk szerint szabályozni:
class point { // Alapertelmezes szerint privat: int x; int y; colortype color; public: // Publikus: int get_x(void) { return x; } int get_y(void) { return y; } colortype get_color(void); void show(void); void hide(void); point(int newx, int newy); ~point(void); };Nincs szükségünk tehát a private kulcsszóra az adatmezõk definiálásakor, ugyanakkor a függvénymezõket public-nak kell deklarálni, hogy létrehozhassunk point típusú objektumokat és hogy belõlük értékeket olvashassunk ki.