 
 
 
 
 
 
Moniperintä voidaan usein välttää käyttämällä luokan jäseninä muita luokkia (member objects). Esimerkiksi värillinen piste on piste, jolla on väritieto (is-a, has-a). Jos suhde on has-a- tyyppinen, koostamme (aggregation)luokan muista luokista:
	/* MULTI1.CPP - alkioina muita luokkia */
	#include <stdio.h>
	
	class caKuvio {                 ... / kuten aikaisemmin
	class cPiste : public caKuvio { ... / kuten aikaisemmin
	
	//----------------------------------------------------------------------------
	class cVari {
	  int r,g,b;
	public:
	  cVari(int ir=0,int ig=0, int ib=0) : r(ir),g(ig), b(ib) {}
	  virtual void tulosta() const {
	    printf("%02x%02x%02x",r,g,b);
	  }
	}; // cVari
	
	//----------------------------------------------------------------------------
	class cVariPiste : public cPiste {
	  cVari vari;
	public:
	  cVariPiste(int ix,int iy,const cVari &ivari) : cPiste(ix,iy),vari(ivari) {}
	  virtual void piirra() const {
	    vari.tulosta(); printf(" ");
	    tulosta("Väripiste"); printf("\n");
	  }
	};
	
	int main(void)
	{
	  cVariPiste p(2,4,cVari(255,0,255));
	  p.sytyta();
	  return 0;
	}
 
 
 
 
 
