次のコードでは、この行に
A(A&b)
このコンパイラを使用すると、次のようなエラーが発生します
c110.cpp:41: エラー: 'A::A(A)' の呼び出しに一致する関数がありません</p>
c110.cpp:8: 注: 候補は: A::A(A&)
しかし、私はそれをに変換するとすぐに
A(const A&b)
事前に多くの多くの感謝
エラーは出ません。なぜそうなのですか?
Code
class A
{
public:
static int cnt;
A(A& b)
{
cnt++;
cout<<"cnt="<<cnt<<endl;
}
A()
{
cnt++;
cout<<"cnt="<<cnt<<endl;
}
~A()
{
cnt--;
cout<<"cnt="<<cnt<<endl;
}
};
int A :: cnt=0;
A fun(A b)
{
return b;
}
int main()
{
A a;
A b=fun(a);
return 0;
}