Sto lavorando su C++ e ho avuto un errore che non conoscevo il motivo esatto. Ho trovato la soluzione, ma voglio ancora sapere perché.sulla conversione C++: nessuna conversione nota per argomento 1 da '[some_class]' a '[some_class] &'
class Base
{
public:
void something(Base& b){}
};
int main()
{
Base b;
b.something(Base());
return 0;
}
quando compilo il codice, ho ottenuto questo errore seguente:
abc.cpp:12:20: error: no matching function for call to ‘Base::something(Base)’
abc.cpp:12:20: note: candidate is:
abc.cpp:6:7: note: void Base::something(Base&)
abc.cpp:6:7: note: no known conversion for argument 1 from ‘Base’ to ‘Base&’
ma quando ho sostituito b.something (Base()) in
Base c;
b.something(c);
l'errore è andato , Mi chiedo perché ??? non sono dello stesso tipo? Importa solo come scrivo, ma il significato dovrebbe essere lo stesso ???
Grazie Ragazzi!
Sembra una domanda valida e utile - in aumento per contrastare l'inarrestabile diminuzione. – CompuChip
@CompuChip le persone come te rendono questa community molto migliore. – imoutidi