[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