最近在项目中写了一个函数其意图是为了返回一个值供给其他地方使用。假设示意函数定义如下:
#include <iostream>
using namespace std;
int& funcation(const int& num)
{
int sum=10;
sum += num;
return sum;
}
int main()
{
int num = funcation(12);
cout <<"num= "<<num<<endl;
return 0;
}
由于代码是写在VS的环境下面的在编译代码时编辑器只是给出了一个警告提示如图所示:
我们知道在函数内部如果定义一个局部变量出了函数作用域之外该变量的值已经失效但是比较庆幸的是VS将这种致命的错误给加以优化了,如果将该代码移植到其他平台那么后果可想而知程序奔溃。所以在以后写代码的过程中应该谨慎点加以避免这种错误的发生。