2019.11.05 C++编译warning:Reference to stack memory associated with local variable 'xxx' returned

函数返回的是一个局部变量的引用,局部变量会在结束时销毁,因此引用可能出错

template 
const T& QStack::topValue(QStack* s) const {
    T temp = s->pop();
    s->push(temp);
    return temp;    // 这个地方warning的原因是:返回了局部变量的引用,局部变量会在结束时销毁
}
template 
const T& QStack::topValue(){
    return topValue(this);
}

 

你可能感兴趣的:(总结)