参数的初始化:已知函数void foo( X x0);
下面这样调用函数
X xx;
foo(xx);
则其中一种实现策略是导入临时性object,并调用copy constructor将它初始化,然后将此临时性object交给函数,如下:
X _temp0;
_temp0.X::X( xx );
foo( _temp0 );
但这样的转换还不到位,foo()的声明也需要被转化,形式参数必须从原先的一个class X object改变为class X 引用。如下:
void foo( X& x0);
在foo函数完成后,会掉用析构函数对付临时性的object。
问题:
为什么foo()的声明必须转化为引用?