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ä.
#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);