在下面的代码中,在这一行
A(A&B)
使用此编译器时会出现错误
c110.cpp:41: 错误:没有匹配函数调用'A::A(A)'</p>
c110.cpp:8:注意:候选人是:A::A(A&)
但是一旦我把它转换成
A(常量 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;
}