C++引用做函数参数以及返回值为引用的函数
时间: 2023-12-27 18:02:55 浏览: 40
在 C++ 中,引用做函数参数和返回值为引用的函数也是非常常见的。与前面所说的类似,引用做函数参数和返回值可以避免大量的复制和内存开销,从而提高程序的效率。
示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void processVector(vector<int>& vec) {
// 对 vec 做一些处理
// ...
}
vector<int>& getVector() {
static vector<int> vec = {1, 2, 3};
return vec;
}
int main() {
vector<int> myVec{4, 5, 6};
processVector(myVec); // 在此处处理 myVec
vector<int>& vec = getVector();
// 使用 vec
return 0;
}
```
在上面的示例中,`processVector` 函数接受一个 `vector<int>` 的引用作为参数,并在函数内部对该引用所引用的对象进行处理。
`getVector` 函数返回一个 `vector<int>` 的引用,这里使用了 `static` 关键字来保证函数返回的引用在函数调用结束后仍然有效。
需要注意的是,在使用引用做函数参数和返回值时,也必须保证被引用的对象在函数调用期间是有效的。如果被引用的对象在函数调用结束后被销毁了,那么引用就变得无效了,这会导致未定义的行为。