Prev Next Up Title Contents Index

Luokat (class)


Koska tietue yleensä aloitetaan luokkaa eniten kuvaavien alkioiden esittelyllä ja itse tietoalkiot tahdotaan suojata, on C++:ssa uusi tietuemäärittely class, jonka alkiot ovat oletuksena suojausluokkaa private.

psitecla.cpp - malli luokasta public-määreestä

	/* PISTECLA.CPP */
	#include <stdio.h>
	
	class cPiste {
	  int x,y;
	public:
	  void tulosta() const { printf("(%d,%d)\n",x,y); }
	  void aseta(int nx,int ny) { x = nx; y = ny; }
	};
	...
Tosin moni kirjoittaja laittaa silti ensin näkyville public-jäsenet:
	class cPiste {
	public:
	  void tulosta() const { printf("(%d,%d)\n",x,y);}
	  void aseta(int nx,int ny) { x = nx; y = ny; }
	private:
	  int x,y;
	};

Tehtävä 1.11 Private- suojaus

Kokeile mitä tapahtuu, jos yrität tehdä sijoituksen p.x = 5 ohjelmassa PISTECLA.CPP. Voiko tulosta -funktion enää lainkaan kirjoittaa ilman C++:an jäsenfunktion käyttöä?

Tehtävä 1.12 Suojattujen tietojen palautus

Muuta ohjelmaa PISTECLA.CPP siten, että siinä on jäsenfunktiot x ja y, jotka palauttavat vastaavien alkioiden arvot. Mitä tästä on hyötyä verrattuna siihen, että x ja y olisivat publiceja?


Prev Next Up Title Contents Index