Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]overloading degli operatori.

    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.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Gestisci il tutto con reference a oggetti così ti eviti brutte sorprese.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    e per il tipo di ritorno?
    è meglio che sia anche lui un reference ?

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Dipende dall'operatore.
    Per gli operatori binari (+, -, *, /, % etc ) devi restituire un nuovo oggetto, per operatori unari ( =, +=, -=, *= etc) restituisci il reference all'oggetto che stai modificando.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.