 
 
 
 
 
 
Moniperinnän kiertämiseksi kokeillaan aluksi versiota:
	class cYmpyranelio: public cYmpyra { 
	  cNelio nelio;
	public:
	  cYmpyranelio(int ix=0, int iy=0, int ir = 1, int is = 2)
	    : cYmpyra(ix,iy,ir), nelio(ix,iy,is) {}
	  void piirra() const { cYmpyra::piirra(); n.piirra(); }
	}; // cYmpyranelio
	Tämä
toimisi muuten hyvin, mutta taas jää neliö
sytyttämättä.  Eli joko pitäisi sytyta kirjoittaa
uusiksi (mutta ei voida, koska se ei ollut virtuaalinen) tai piirra-
metodiin laittaa ihmeellinen ehto, jolla tutkitaan onko piirrettäessä
ympyrän ja neliö näkyvyys samanlainen ja korjata tämä
jollei ole.Seuraava yritys voisi olla sellainen, että ympyräneliötä ei peritäkään mistään, vaan se koostetaan sekä ympyrästä että neliöstä. Tässä ratkaisussa olisi se huono puoli, ettei ympyräneliö- osoitin taaskaan voisi olla samassa taulukossa muiden graafisista olioista periytyvien olioiden osoittimien kanssa.
Toimivimmalta ratkaisulta näyttäisi sellainen, jossa suosiolla muutetaan kantaluokkaan sytyta ja sammuta virtuaalisiksi. Lisäksi esimerkiksi caKuvioJollaSade - luokasta peritään vielä yksi abstrakti luokka: caKoostettuKuvio, josta sitten tällaiset ympyräneliöt voidaan periä lisäämälle ympyrä ja neliö attribuuteiksi.
 
 
 
 
 
