ciao.
Devo trovare uno standard per im mio codice di come creare l'overloading degli operatori .
mi spiego meglio postando un po di codice:
.h
codice:
CIfcTrasformation3d* operator* (CIfcTrasformation3d * second);
.cpp
codice:
CIfcTrasformation3d* CIfcTrasformation3d::operator* (CIfcTrasformation3d* second)
{
*m_pRotationMatrix = *m_pRotationMatrix * *second->GetRotationMatix();
*m_pPosition = *m_pPosition + *second->GetTranslationVector();
return NULL;
}
CIfcTrasformation3d è una mia classe che aggrega posizione e rotazione di un elemento.Lo utilizzo cosi:
codice:
for(itBegin; itBegin != itEnd; ++ itBegin)
{
Step::ObsPtr<ifc2x3::IfcRelAssignsToProduct> ptrAssignProduct = *itBegin;
Step::RefPtr<IfcProduct> ptrProduct = ptrAssignProduct->getRelatingProduct();
RefPtr<IfcLocalPlacement> pLocalPlacement = ptrProduct->getObjectPlacement();
CIfcTrasformation3d Trasformation3d;
//
Trasformation3d.InitPositionAndRotation(pLocalPlacement.get());
AllTrasformation3d =*(AllTrasformation3d * &Trasformation3d);
}
il mio problema è che a volte mi trovo ad utilizzare l'operatore con gli oggetti , a volte con i puntatori , da qui il casino che ho scritto(bruttissimo me ne rendo conto).Esiste un metodo o una linea per gestire i parametri degli operatori in questi casi?
come ?
grazie.