Si consideri la seguente classe che contiene una funzione di conversione per il tipo std :: string:Perché una funzione di conversione non funziona con std :: string?
class SomeType
{
public:
SomeType(char *value)
{
_str = value;
}
operator std::string()
{
return std::string(_str);
}
private:
char *_str;
};
Il seguente frammento non riesce a compilare con l'errore: nessun operatore "==" partite questi operandi
int main(int argc, char* argv[])
{
SomeType a("test");
if (a == std::string("test")) // ERROR on this line
{
int debug = 1;
}
return 0;
}
Mi rendo conto che potrei definire un operatore == metodo che accetta l'operando std :: string, ma perché la funzione di conversione non funziona?
qual è l'errore? –
@Aniket L'errore è nella domanda. –
Se una di queste risposte è stata utile, si prega di accettarne una. – Borgleader