Prev Next Up Title Contents Index

Alkioiden suojaukset

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

Kuva . Suojaustasot

Tavallisessa tietueessa (struct) on oletuksena suojaus public. Pisteen koordinaatit voitaisiin suojata seuraavasti:

pistepri.cpp - malli tietueesta ja private-määreestä

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


Prev Next Up Title Contents Index