allora semplificando:
ho una classe Che dirige l'importazione :
for (pApi->JointReset(); pApi->NextJoint() {
if(!pApi->GetJoint(&JointID, &x, &y, &z, m_pModel->GetFreeIDEntity(0)))
.
.
.
questa deve rimanere cosi'
dove pApi è una classe specializzata per l'importazione da un dato programma che puo' essere ad es sap ma che puo' essere anche robot ecc...
Classe Base CBaseSap.h:
funzioni
codice:
virtual void JointReset();
virtual bool NextJoint();
virtual bool GetJoint(int* JointID, double *px, double *py, double *pz, int nFreeID);
Classe CreaderTextSap.h:
eredita da CBaseSap
funzioni
codice:
void JointReset();
bool NextJoint();
bool GetJoint(int* JointID, double *px, double *py, double *pz, int nFreeID);
Classe CreaderDbSap.h:
eredita da CBaseSap
funzioni
codice:
void JointReset();
bool NextJoint();
bool GetJoint(int* JointID, double *px, double *py, double *pz, int nFreeID);
ora ,CreaderTextSap e CreaderDbSap ereditano da CBaseSap dove vorrei implementare la logica. in pratica:
codice:
bool CBaseSap::GetJoint(int* JointID, double *px, double *py, double *pz, int nFreeID)
{
*px = *px * m_dLFactor;
*py = *py * m_dLFactor;
*pz = *pz * m_dLFactor;
}
per semplificare molto devo solo moltiplicare *px * m_dLFactor;
e cosi' sarebbe semplice ,perchè ho i dati che la logica deve processare nei parametri della funzione , quindi basta richiamare
la funzione della classe base cosi:CBaseSap::GetJoint(x1,x2 ecc...
ma se la logica deve processare molti piu dati come posso passarli alla classe base senza aumentare il numero dei parametri
nella funzione della classe base?
si puo?
In pratica vorrei separare la logica dalla lettura dati.
Avete metodi da proporre migliori?
grazie.