I have a constructor attempting to initialize a field in a base class. The compiler complains. The field is protected, so derived classes should have access.
You need to call the base class constructor as follows:
DerivedClass::DerivedClass(std::string data) : BaseClass(data) { }
Each class should be in charge of initializing it's members.