Just leaving aside the whole "protected data members are the sperm of the devil" thing, the code you've presented there looks like it should compile.
The only suggestion I can make based on the code is that you haven't included something - I couldn't see any mention of
#include "List.h"
in your sortable list header - or you've got two different headers kicking around.
Going forward the best thing to do (apart from not trying to implement your own list) is to start again on the derived class. Take it baby steps, adding small bits of code each time. Then when something goes wrong you know what you did to cause it and can hopefully isolate and fix it. Just start with something simple:
#include "List.h"
class A : public List<int>
{
public:
A()
{
count = 87;
}
};
If that compiles and works
with no additional headers aside from the base class then you know your problem is with something else. If it doesn't then there's something weird with the base class, but cunningly disguised.
Cheers,
Ash
PS: Or after seeing the error messages it could be the loop variable...