Edellä kaikki pääsivät käsiksi pisteen x- ja y-koordinaattiin. Tämä ei suinkaan aina ole toivottavaa ja yksi olio- ohjelmoinnin tärkeimmistä ominaisuuksista onkin tietojen suojaaminen (encapsulation): alkioon pääsee käsiksi vain sille tarkoitetut funktiot.
C++:ssa tietueen esittelyn yhteydessä alkiolle voidaan antaa seuraavia suojaustasoja:
Kuka voi käyttää alkiota
|
Oletuksena
|
|||||
Suojaus
|
kaikki
|
aliluokat
|
friend-
funktiot
|
luokan funktiot
|
struct union |
class
|
private
|
x
|
x
|
x
| |||
protected
|
x
|
x
|
x
|
|||
public
|
x
|
x
|
x
|
x
|
x
|
/* PISTEPRI.CPP */ #include <stdio.h> struct cPiste { void tulosta() const { printf("(%d,%d)\n",x,y); } void aseta(int nx,int ny) { x = nx; y = ny; } private: int x,y; }; int main(void) { cPiste p; p.aseta(3,2); p.tulosta(); p.aseta(7,1); p.tulosta(); return 0; }