私はC++で作業しており、正確な理由はわかりませんでした。私は解決策を見つけましたが、それでも理由を知りたいと思っています。about C++ conversion: '[some_class]'から '[some_class]&'への引数1の既知の変換はありません。
class Base
{
public:
void something(Base& b){}
};
int main()
{
Base b;
b.something(Base());
return 0;
}
私はコードをコンパイルするとき、私はこの次のエラーました:
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&’
を私は
Base c;
b.something(c);
にb.something(ベースを())に交換したときにエラーがなくなっています、私はなぜ思っていますか???彼らは同じ種類がありますか?それは私がそれをどのように書くかだけが重要ですが、意味は同じでなければなりません???
ありがとうございました!
b.something(Base());
いますが、ここでは非const左辺値参照にそれをバインドしよう:
有効で有用な質問のようです - 原因不明のdownvoteに対抗するためにupvoted。 – CompuChip
@CompuChipあなたが好きな人は、このコミュニティをもっと良くする。 – imoutidi