Salut,
J'ai un souci pour pouvoir utiliser un pointeur sur une classe(class packet_pv) avec l'operateur surcharge de cette classe.
Dans ma classe packet_pv l'operateur == est surcharge:
Code :
- bool packet_pv::operator == (const packet_pv& rhs) const{
- unsigned int payload_size=get_payload_size();
- bool equal=false;
- if(payload.range(payload_size-1,0)==rhs.payload.range(payload_size-1,0))
- equal = true;
- return (equal && rhs.header == header && rhs.latency==latency && rhs.packet_id_comparator == packet_id_comparator);
- }
|
Dans mon code je recupere un pointeur sur un type packet_pv:
Code :
- //get a pointer to the Request
- packet_pv *packet_ptr = req.getWriteDataSource();
|
ensuite je souhaite tester le packet_pv recu avec le contenu d'un tableau de packet_pv:
Code :
- //test packet_pv received
- if(*packet_ptr== packet_array[playerID][packetID]){
-
- cout << "OK in transportRx2" << endl;
- }else{
- cout << "error in transportRx2" << endl;
- }
|
Dans ce cas la comparaison renvoie false alors que les deux instances sont identiques.
Les variables rhs.header, rhs.payload, etc.., sont nulles alors que les variables header, payload, etc... sont OK
Vous avez des idees la dessus?
Merci