Ich arbeite an C++, und hatte einen Fehler, dass ich den genauen Grund nicht kannte. Ich habe die Lösung gefunden, möchte aber trotzdem wissen warum.über C++ - Konvertierung: keine bekannte Konvertierung für Argument 1 von '[some_class]' zu '[some_class] &'
class Base
{
public:
void something(Base& b){}
};
int main()
{
Base b;
b.something(Base());
return 0;
}
, wenn ich den Code kompilieren, ich habe diesen folgenden Fehler:
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&’
aber wenn ich b.something (Base()) in
ersetztBase c;
b.something(c);
der Fehler ist weg Ich frage mich warum ??? haben sie nicht den gleichen Typ? Es ist nur wichtig, wie ich es schreibe, aber die Bedeutung sollte gleich sein ???
Danke Jungs!
Scheint wie eine gültige und nützliche Frage - upvoted gegen den unerklärten Downvote. – CompuChip
@CompuChip Leute wie Sie machen diese Gemeinschaft viel besser. – imoutidi