オブジェクトのインスタンスを渡すことと、逆参照されたオブジェクトを渡すことの違いはわかりません。私は持っています
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()));
します。
呼び出したいメソッドを変更できない場合、問題の理由と解決方法を教えてもらえますか?