cosi penso:
BASECLASS::void Get()

Gli errori:
line : 400 int BASECLASS::a' is protected
line : 402 int BASECLASS::b' is protected

sono dati, dal semplice fatto che hai dichiarato a e b come variabli di tipo protected, lo scope protected va usato per l'ereditarietà delle classi il quale sono un pò dolente ancora, dovresti dichiararle nello scope private, variabili dichiarate come protected si usa quando devono essere chiamate da funzioni membro di altre classi e non della medesima!! adesso a e b se non erro, sono state chiamate dalle funzione della stessa classe,
quindi a e b sono dati membro della classe BASECLASS
mentre la funzione con la quale le hai prese fa sempre parte di BASECLASS!!!!!!!!
Secondo me dovresti provare dichiare quelle variabili come private

spero di non averti detto cose sbagliate,se è sbagliato fammi sapere.. prova...