main()错误地收到C ++引用

时间:2012-10-06 15:09:45

标签: c++ reference

  

可能重复:
  C++ Returning reference to local variable

我无法在以下代码中正确传递引用。

myint& myint::abs()
{
  myint i=*this;
  myint &t=i;
  t.setsign(0);
  return t;      
}

在abs()函数中正确修改了引用't'。我打印过它,发现它是正确的。但是,main()中收到的值总是错误的。

我在main()

中使用了以下语句
myint a("-12"); /*gives a=-12 with each digit in a linked list node. separate data field for sign.*/
myint b=a.abs();

b收到的是0,默认值。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您正在返回对本地变量“i”的引用。 从函数返回时我已超出范围,因此使用对它的引用会导致未定义的行为。