c***d 发帖数: 996 | 1 ☆─────────────────────────────────────☆
geome (Derivative) 于 (Sat Jun 16 16:21:11 2007) 提到:
#include
using namespace std;
class A{
public:
A(){}
A(A& a){cout<<"copying"<
};
A func(A a){
return a;
}
int main(){
A a;
A b=func(a);
return 1;
}
不能编译.
但是如果把 A b=func(a);换成func(a);就可以了.
或者把 A(A& a)换成A(const A& a)也可以编译通过.
按照第二个办法来看,compiler怕A b=func(a)改变了func里面的临时变量,但是func(a)
也会产生同样
的问题啊???不明白...
☆─────────────────────────────────────☆
std (解不了名缰系嗔贪) 于 (Sat Jun 16 17:42:48 2007) |
|