我可以退回参考吗?

时间:2012-03-18 19:54:20

标签: c++

如果我需要返回一个引用的值,这个函数代码可以工作吗?

&int returnvalue(){
    return &property;
}

我想只返回对我班级属性的引用,这可能吗?

5 个答案:

答案 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;
}