运行结果:

  解释如下:

  1、创建对象h,并调用构造函数

  2、输出“Entering f()”字符串

  3、进入f()函数前,创建一个临时对象Temp,并调用拷贝构造函数,将对象h的内容拷贝到Temp中

  4、进入f()函数后,在“return x”时,调用拷贝构造函数,将对象Temp的内容拷贝到h2中,在函数结束前调用析构函数,销毁对象Temp

  5、输出字符串

  6、进入f()函数前,创建一个临时对象Temp,并调用拷贝构造函数,将对象h的内容拷贝到Temp中

  7、进入f()函数后,创建一个临时对象x,在“return x”时,调用拷贝构造函数,将对象Temp的内容拷贝到x中,在函数结束前调用析构函数,先销毁对象Temp,再销毁对象x

  8、在main函数结束前,调用析构函数,先销毁对象h2,再销毁对象h