如果我需要返回一个引用的值,这个函数代码可以工作吗?
&int returnvalue(){
return &property;
}
我想只返回对我班级属性的引用,这可能吗?
答案 0 :(得分:7)
您可以在C ++中返回引用。但是,您需要正确的语法:
int &returnvalue() {
return property;
}
在函数类型声明中,int
位于&
之前。在return
语句中,您不希望使用property
的地址,因为这是一个指针。
答案 1 :(得分:2)
是的,有可能:
#include <iostream>
int i = 2;
int& a()
{
return i;
}
int main()
{
int& j = a();
std::cout << j;
}
输出:2
答案 2 :(得分:1)
您也可以通过引用传递变量,然后在函数中更改它。这将改变原始变量。
int main()
{
int a = 1;
cout << "a before it is passed by reference: " << a << endl;
increment(a);
cout << "a after it has been passed by reference: " << a << endl;
return 0;
}
void increment(int &number)
{
number++;
}
输出将是:
a之前通过引用传递:1
a通过引用后传递:2
答案 3 :(得分:0)
class MyClass{
private:
Member _member;
public:
Member& getMember(){
return _member;
}
};
但这是一个封装违规,所以不要这样做:)。
答案 4 :(得分:-2)
int* returnvalue() {
int* property;
// setting protperty
return property;
}