C++引用变量问题,函数中临时变量返回引用

C++ primer plus第六版引用一节,说不能在函数中新建一个变量,并将其引用返回。道理我都懂,就是说函数调用完后,那部分临时内存会释放。可是为什么我自己写的下述代码不报错,反而能正常运行呢?

#include
using namespace std;

struct free_throws //此处定义一个结构体
{
int i;
};

const free_throws & clone2(free_throws & ft1, free_throws & ft2); //函数声明
int main()
{
free_throws ftt,ft1,ft2; //新建三个结构体
ft1 = { 6 };
ft2 = { 4 };
ftt = clone2(ft1,ft2); //|按道理这块应该崩溃,但没崩
cout << ftt.i;
return 0;
}
const free_throws & clone2(free_throws & ft1, free_throws & ft2)
{
free_throws newguy;

newguy.i = ft1.i + ft2.i;
return newguy;
}

查看全部
caojunqi123like
caojunqi123like
2015/07/03 04:44
  • c++
  • 点赞
  • 收藏
  • 回答
    私信

8个回复