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;
}