2012-03-18 75 views
-3

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

&int returnvalue(){ 
    return &property; 
} 

我想只返回一个对我的类的属性的引用,可以这样做吗?

+0

的http:// WWW .functionx.com/cpp/examples/returnreference.htm,http://www.learncpp.com/cpp-tutorial/74a-returning-values-by-value-reference-and-address/ – 2012-03-18 19:56:11

回答

7

您可以在C++中返回引用。但是,你需要得到正确的语法:

int &returnvalue() { 
    return property; 
} 

在功能类型声明,int来了&之前。在return声明中,您不想采用地址property,因为这是一个指针。

+0

非常感谢:) – 2012-03-18 20:37:59

2

是的,这是可能的:

#include <iostream> 
int i = 2; 

int& a() 
{ 
    return i; 
} 

int main() 
{ 
    int& j = a(); 
    std::cout << j; 
} 

输出:2

0
class MyClass{ 
private: 
    Member _member; 
public: 
    Member& getMember(){ 
    return _member; 
    } 
}; 

但这是一种封装违反所以不这样做:)。

-2
int* returnvalue() { 
    int* property; 
    // setting protperty  
    return property; 
} 
+0

你正在返回一个指针,而不是一个引用。 – mfontanini 2012-03-18 20:05:48

+0

而你正在返回一个临时变量。 – 2012-06-24 07:39:44

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++; 
} 

输出将是:

一个之前将其通过引用传递:1

一个之后已经通过了参考:2