[C con Clase] que significa el error Conversion loses qualifiers ???

Steven Davidson srd4121 en njit.edu
Jue Ene 21 22:56:59 CET 2010


Hola David,

David Fire wrote:
> archivo.cpp : error C2662: 'DeliveryData::CheckTicketDeliveryAlarm' : 
> cannot convert 'this' pointer from 'const DeliveryData' to 'DeliveryData &'
>         Conversion loses qualifiers
> 
>           DeliveryData   *deliveryData = &(pTank->m_DeliveryData);
> en esta linea lo tira        deliveryData->CheckTicketDeliveryAlarm( 
> pTank->getDeviceID() );
> 
> esto da el mismo error
>           DeliveryData   &deliveryData = pTank->m_DeliveryData;
> en esta linea lo tira        deliveryData->CheckTicketDeliveryAlarm( 
> pTank->getDeviceID() );
> 
> 
> pero esto si funciona
>           DeliveryData   deliveryData = pTank->m_DeliveryData
>          deliveryData.CheckTicketDeliveryAlarm( pTank->getDeviceID() );
> 
> alguna idea???

El problema se debe a que el objeto apuntado por 'deliveryData' es 
constante e intentas invocar una función miembro que no es constante. 
Por ejemplo, algo así,

void func( const DeliveryData *ptr )
{
   ...
   ptr->CheckTicketDeliveryAlarm( pTank->getDeviceID() );
   ...
}

int main()
{
   DeliveryData *deliveryData = &(pTank->m_DeliveryData);
   func( deliveryData );
   ...
}


Revisa el código fuente y el calificativo o modificador 'const'.


Espero que esto te oriente.

Steven





Más información sobre la lista de distribución Cconclase