 
 
 
 
 
 
Seuraava esimerkki kuvannee muodostajan (rakentaja) ja hajottajan (hävittäjä) kutsujärjestystä:
	/* CONORDER.CPP */
	#include <stdio.h>
	#include <string.h>
	#include <conio.h>
	
	
	#define RIVEJA 14
	
	class cMalli {
	  int  luku;
	  char nimi[10];
	  static int rivi;  // Tulostusrivien laskuri
	public:
	  cMalli(int i=0, char *s="?") {
	    luku = i; strcpy(nimi,s);
	    tulosta("Rakentaja");
	  }
	
	  ~cMalli() { tulosta("Hävittäjä"); }
	
	  void tulosta(char *s="???") const {
	    rivi++;
	    if (rivi>RIVEJA) gotoxy(40,1+rivi-RIVEJA);
	    else gotoxy(1,1+rivi);
	    printf("%2d %-10s: %-10s %3d\n",rivi,s,nimi,luku);
	  }
	  void vaihda(int i) { luku = i; tulosta("Vaihto");}
	};
	
	int cMalli::rivi = 0; // ks. luokkamuuttujat
	
	int main(void)
	{
	  clrscr();
	  printf("--------------------------------------------------------\n");
	  //                                                           rivinro
	  cMalli m1(1,"m1");                                           // # 1
	  cMalli *p,*a;
	  cMalli t[3]={                                                // # 2-4
	    cMalli(10,"t[0]"),cMalli(11,"t[1]"),cMalli(12,"t[2]")
	  };
	  {
	    m1.tulosta("Onko muita");                                  // # 5
	    cMalli m2(2,"m2");                                         // # 6
	    m2.tulosta("Nyt on 2");                                    // # 7
	    {
	      cMalli m3(3,"m3");                                       // # 8
	      m3.tulosta("Nyt 3");                                     // # 9
	      p = new cMalli(4,"*p");                                  // #10
	
	    }                                                          // #11
	  }                                                            // #12
	
	  a = new cMalli[3];                                           // #13-15
	  delete p;                                                    // #16
	  a[1].tulosta("Dyn.taul.");                                   // #17
	
	  for (int i=0; i<3; i++) a[i].vaihda( (i+1)*100 );            // #18-20
	  a[1].tulosta("Dyn.taul.");                                   // #21
	  delete [] a;                                                 // #22-24
	  return 0;
	}                                                              // #25-28
Alla on ohjelman tulostus.  Riveihin viitataan ohjelmakoodin kommenteissa:
1 Rakentaja : m1 1 | 15 Rakentaja : ? 0 2 Rakentaja : t[0] 10 | 16 Hävittäjä : *p 4 3 Rakentaja : t[1] 11 | 17 Dyn.taul. : ? 0 4 Rakentaja : t[2] 12 | 18 Vaihto : ? 100 5 Onko muita: m1 1 | 19 Vaihto : ? 200 6 Rakentaja : m2 2 | 20 Vaihto : ? 300 7 Nyt on 2 : m2 2 | 21 Dyn.taul. : ? 200 8 Rakentaja : m3 3 | 22 Hävittäjä : ? 300 9 Nyt 3 : m3 3 | 23 Hävittäjä : ? 200 10 Rakentaja : *p 4 | 24 Hävittäjä : ? 100 11 Hävittäjä : m3 3 | 25 Hävittäjä : t[2] 12 12 Hävittäjä : m2 2 | 26 Hävittäjä : t[1] 11 13 Rakentaja : ? 0 | 27 Hävittäjä : t[0] 10 14 Rakentaja : ? 0 | 28 Hävittäjä : m1 1Mikäli a -taulukon tuhoamisessa ei olisi ollut taulukkomerkintää delete [] a;, ei a:n jokaista alkiota kohti olisi kutsuttu vastaavaa hajottajaa.
 
 
 
 
 
