As it says in the error message, where's your default constructor for parent?
If the compiler doesn't see an explicit reference to a base class constructor in the derived class initialiser list it'll try and generate a call to the base class default constructor.
To avoid this you need something like:
insertionSort(T *a, int l) : Parent(a, l)
{
}
and not the syntax you used.
Incidentally should SWAP be a public base class of insertionSort? What sort of operations does SWAP provide that clients of insertionSort want to use? Looking at the lack of data members are you even sure that SWAP is a class and not a function? Actually the entire thing looks like a bunch of functions rather than being classes but maybe that's me.