程序实施时,为什么MyClass类的拷贝构造函数被调用的次数是4

程序执行时,为什么MyClass类的拷贝构造函数被调用的次数是4
[code=C/C++][/code]#include<iostream>
using namespace std;
class MyClass
{
public:
MyClass(int n){number=n;}
// 拷贝构造函数
MyClass(MyClass& other){number=other.number;}
~MyClass(){ }
private:
  int number;
};
MyClass fun(MyClass p)
{
  MyClass temp(p);
  return temp;
}
int main()
{
  MyClass obj1(10),obj2(0);
  MyClass obj3(obj1);
  obj2=fun(obj3);
  return 0;
}


------解决方案--------------------
探讨

obj3(obj1)
MyClass p
temp(p)
obj2=fun(obj3);