You never define bodies for TestBed's execute and setAlgorithm functions.
Instead, you are defining two global functions with the same name.
You forgot to give those functions the proper scope:
1 2 3 4 5 6 7 8 9 10 11
/*SelectionAlgorithm * algorithm; // <- these probably should not be global
AlgorithmSortAll * all; // they probably should be members of TestBed
AlgorithmSortK * toKey;*/
//..
void TestBed::setAlgorithm(int type, int k) { // <- note the 'TestBed::'
//..
void TestBed::execute() // <- note the 'TestBed::'