c++返回局部对象的引用为什么得到了正确的返回值?
class A {
public :
int num = 10;
};
vector<int>& get() {
vector<int> i{ 1,2 };
return i;
}
A& getA() {
A a;
a.num = 8;
return a;
}
int main()
{
vector<int> vec(2);
vec = get();
std::cout << vec.size() << endl;
A aa = getA();
cout << aa.num << endl;
}
为什么输出vec.size()是0? 返回的getA()返回的也是局部变量的引用为什么得到了正确的值
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个未定义行为(Undefined behavior)。
未定义行为什么都可能发生。