Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
Salve ragazzi, Mi sto ancora dilettando con il mio progetto Mappy
( http://www.pierotofy.it/pages/sorgenti/dettagli/19563-Mappy/ )
Ho un problema quando devo eseguire un confronto tra due strutture.
E credo che anche stavolta, mi confondo tra C# e Cpp.
dunque il codice è il seguente
Codice sorgente - presumibilmente C/C++ |
qDebug() << m.Tiles.count();
for(int i = 0; i <m.Tiles.count(); i++)
{
MappySaver::Tile t = static_cast<MappySaver::Tile>(m.Tiles[i]);
int duplicates = 0;
for(int j = 0; j < m.Tiles.count(); j++)
{
if(m.Tiles[i] == m.Tiles[j]) //Errore qui
duplicates++;
}
if(duplicates > 1)
m.Tiles.removeAt(i);
}
|
error: no match for 'operator==' (operand types are 'MappySaver::Tile' and 'MappySaver::Tile')
if(m.Tiles == m.Tiles[j])
^
Non è che forse devo fare un override dell'operatore per verificare l'integrità?
In C# bastava fare un semplice == per verificare una struttura se combacia con l'altra.
Di seguito ho provato a fare in questo modo
Codice sorgente - presumibilmente C++ |
//Classe MappySaver.h bool& operator == (MappySaver::Tile &tile, MappySaver::Tile match); //MappySaver cpp bool &operator == (MappySaver::Tile &tile, MappySaver::Tile &match) { if(tile.ID == match.ID) //Test solo per questo campo { return true; }else { return false; } }
|
Ma mi da errore su entrambi i valori di ritorno
mappysaver.cpp:53: error: invalid initialization of non-const reference of type 'bool&' from an rvalue of type 'bool'
return true;
^
Ho provato anche a mettere sia ad un parametro che ad entrambi l'opzione const ma niente
perché leggendo non-const credevo che uno tipo di parametro doveva essere const ma niente.
Cosa sbaglio?
|