Advanced features When two things are similar but not quite the same ...
// A function to return a complicated object:
Compos * makeComplicatedLayer(int layerNumber) {
Compos * layer = new Compos;
layer->setName(“SCT_layer_”+layerNumber);
// Build the layer in a special way
} else { /* Build the layer in the normal way */ };