previous next Up Title Contents Index

9.3.5 Muodostajat (constructor)

C++:ssa on yksi erityinen metodi: muodostaja (konstruktori, rakentaja, constructor), jota kutsutaan muuttujan syntyessä. Muodostajan tehtävä on alustaa olion tila ja luoda mahdollisesti tarvittavat dynaamiset muistialueet. Näin voidaan järjestää se, että olion tila on aina tunnettu olion syntyessä.

Joissakin oliokielissä konstruktori ilmoitetaan omalla avainsanallaan. C++:ssa muodostaja on metodi, jolla on sama nimi kuin luokalla. Muodostajia voi olla useitakin. Muodostaja on aina tyypitön, siis ei edes void- tyyppiä.

olioalk\aikacla.cpp - muodastaja alustamaan tiedot

	#include <iostream.h>
	#include <iomanip.h>
	
	class cAika {
	  int h,m;
	public:
	  cAika(int ih, int im) { h = ih; m = im; }
	  void lisaa(int lisa_min)  {
	    int yht_min = h * 60 + m + lisa_min;
	    h = yht_min / 60;
	    m = yht_min % 60;
	  }
	  void tulosta() const  {
	    cout << setfill('0') << setw(2) << h << ":" << setw(2) << m << endl;
	  }
	};
	
	
	int main(void)
	{
	  cAika a1(12,15), a2(13,16), a3(14,25);
	  a1.lisaa(55);    a1.tulosta();
	  a2.lisaa(27);    a2.tulosta();
	  a3.lisaa(39);    a3.tulosta();
	  return 0;
	}
Esimerkissämme muodostaja on esitelty 2-parametriseksi
	cAika(int ih, int im) { h = ih; m = im; }
ja sitä kutsutaan olion esittelyn yhteydessä
	cAika a1(12,15);


previous next Up Title Contents Index