千万不要返回局部对象的引用

eg:

const string &ma(const string & a)

{

string ret=s;

return ret;

}

这个函数会在运行时出错,以为它返回了局部变量的引用,当函数执行完毕,字符串ret占用的存储空间将被释放,函数返回值指向了对于这个程序来说不再有效的内存空间。

同样,返回局部对象的指针也是错误的,一旦函数结束,局部对象被释放,返回的指针就变成了指向不再存在的对象的悬挂指针。