首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

回来指向不在作用域中的对象的引用

2013-02-24 
返回指向不在作用域中的对象的引用SimpleCat & TheFunction(){SimpleCat Frisky(5,10)return Frisky}//

返回指向不在作用域中的对象的引用


SimpleCat & TheFunction()
{
SimpleCat Frisky(5,10);
        return Frisky;
}

// 上述返回局部对象的引用
我把他改成下面这样为什就可以了?希望前辈门跟我说说是什么道理? 如果有代码加以说明会更好,我很菜啦~

SimpleCat & TheFunction()
{
SimpleCat *Frisky = new SimpleCat(5,9);
return *Frisky;
}

[解决办法]
栈上的数据随着函数结束就被释放了.
[解决办法]
引用:
引用:栈上的数据随着函数结束就被释放了.

局部变量,局部对象会被释放,那就是说自由存储区是属于堆的。所以不随着函数的结束而被释放,需要自己delete才可以对吧??

恩。是这样的
[解决办法]
临时变量作用域只在函数范围内,出了函数就被销毁了,new了一个指针在堆上,直到delete或者程序结束时才被销毁。

热点排行