【发布时间】:2021-08-16 12:39:09
【问题描述】:
请考虑这种情况。 我正在为 [] 运算符创建一个函数,就像在 std::vector 中一样,其内部是这样的:
int temp;
if(argument >= 0 && argument < size) {
return &my_vector[i];
} else {
cout << "out of bounds" << endl;
//i need to return here something but this gives me an error: local variable cannot be returned by reference.
return &temp;
}
其中参数是传递给函数的参数。此函数的返回类型是 'T*'。
我正在寻找读写两种情况:
vector[100] = 1;
和int answer = vector[100];
这就是它们通过引用返回的原因。
else部分应该返回什么?
【问题讨论】:
-
"这个函数的返回类型是 'T'" 不是
T&吗?实际上从代码看起来它是T* -
你为什么要返回指针?
-
我怀疑,像您之前的许多人一样,您将“地址”与符号与“引用类型”符号混淆了。
-
@nhatnq 你可以扔掉。 “应该”在很多情况下都是错误的