Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

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


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys