我无法在以下代码中正确传递引用。
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,默认值。
提前致谢。
答案 0 :(得分:1)
您正在返回对本地变量“i”的引用。 从函数返回时我已超出范围,因此使用对它的引用会导致未定义的行为。