+ 1
std :: cout you put it in the header, below the include so that the preprocessor finds out and you already enable that output function. You don't have to call her that way on every line you need her.
And it is used with the standard library, not with the Iostream. I hope it serves you
0
Assuming the main problem is fixed, I just wanted to inform you that putting member variables in the protected scope is bad design and those char* members should really be const char* since they are pointing to read only memory.
Nothing is stopping a client from creating their own class that inherits from your base class and then directly accesses them in an unintended way.
Private members + protected getters and setters are the way.