关于类的返回~解决办法

关于类的返回~~~
比如一个类为class     A,其中有个成员函数为A     GetOther();    
请问在GetOther()    
{    
              A     a(0);    
              return     a;    
}    
与    
{    
              return     A(0);    
}    
 
有什么不同~~~????  

在使用上,的确有过不同,但是就是找不到原因...   请指教...

------解决方案--------------------
前者的过程:
1.对象a被创建,同时完成初始化
2.调用拷贝构造函数把a拷贝到保存返回值的外部存储单元中
3.a在函数结束时被销毁(调用析构函数)

后者的过程:
直接把临时对象创建并初始化在外部存储单元中,省去了拷贝和析构.

显然后者比前者效率要高

------解决方案--------------------
所谓的内存泄漏是指如果在“程序执行结束之前”因为动态创建而申请得到的内存块的地址上在程序中丢失了(就是在程序中没有任何一个指针保存了该内存块的地址),就被认为是内存泄漏。

并不是说如果有new而没有delete就是内存泄漏,只要在程序中还有指针指向申请的该内存块就不叫内存泄漏。