Meglio se mostri l'architettura generale di quello che vuoi fare perché ci sono varie strade per fare quello che ti serve in modo pulito.
Qualche indicazione:
CReaderBase è astratta pura o contiene variabili membro?
CAdoDatabase e CSapModel vanno passati solo nei costruttori o anche in altre funzioni set?
CAdoDatabase e CSapModel possono avere un'interfaccia base comune?