gpt4 book ai didi

c++ - 如果我将 "reference to vector"分配给 "vector"会发生什么

转载 作者:行者123 更新时间:2023-11-30 01:37:04 27 4
gpt4 key购买 nike

friend 我碰巧错误地写了这段代码:

const std::vector<int> &FunctionReturnReferenceToVector();

vector<int> tmp;
/*do something else*/
tmp = FunctionReturnReferenceToVector();

编译器没有提示,我的程序成功结束,结果正确。

请问整个过程到底发生了什么?

我使用 CLion IDE 和 Clang 作为编译器。

最佳答案

如果你看the assignment operator of std::vector<> (以及the copy constructors),您将看到没有一个需要另一个vector<>按值(value)

无论如何,它们都是通过引用传递的(然后由复制构造函数复制,这就是它被称为复制构造函数的原因)。

引用通常与“真实的东西”一样好。只要 vector FunctionReturnReferenceToVector()返回对仍然存在的引用,一切都很好......

确实仍然存在,是吗?如果它只存在于该函数的本地,那么你就有麻烦了。 ;-)

关于c++ - 如果我将 "reference to vector"分配给 "vector"会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50413546/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com