C++复制构造函数的调用中的问题? 先上程序吧! class point { public: point(int X=0,int Y=0); point(point &p); ~point(); void dispaly() const; private: int x,y; }; point fun() { point a(1,2); return a; } int main() { point c(1,1); point b=fun(); return 0; } 在fun()函数执行完之后,fun()里的a就要销毁,但是在销毁之前会生成一个无名对象,然后把a的值复制给这个无名对象,在这调用了一次复制构造函数。但是在声明并初始化b的时候,是有这个无名对象去初始化b,应该还要调用一次复制构造函数,但是在系统上怎么只调用了一次。求高人指点。谢谢!
[解决办法] 参考 ISO/IEC 14882:2003(E) 12.8 Copying class objects 第15条款