我沒有得到將對象的實例傳遞給傳遞取消引用的對象的區別。我有困惑於對象和取消引用的指針
class A
{
public:
A() {}
void m() {}
};
void method(A& a)
{
a.m();
}
int main(int argc,char** argv)
{
method(A());
return 0;
}
調用上面不帶編譯錯誤的工作:
In function 'int main(int, char**)':
error:no matching function for call to 'method(A)'
note: candidates are:
note: void method(A&)
note: no known conversion for argument 1 from 'A' to 'A&'
note: void method(B&)
no known conversion for argument 1 from 'A' to 'B&'
但如果我寫
method(*(new A()));
它。
任何人都可以告訴我爲什麼以及如何解決問題,如果我不能改變我想打電話的方法?
(非常量)引用無法綁定到臨時值。 – 2013-02-22 22:23:18
@KerrekSB:既然你發佈了這個評論,請提供dup;) – 2013-02-22 22:23:51
@honk:「* * dup」? :-) – 2013-02-22 22:24:34