2011-02-03 116 views
3

我对C++ arcana的了解有点粗糙。比方说,我有以下类:C++:引用地址?

struct Bar { 
    int x; 
}; 

class Foo { 
    Bar& bar; 
public: 
    Bar* getRealAddress() { return &bar; } 
    Foo(Bar& _bar) : bar(_bar) {} 
}; 

Bar bar1; 
Foo foo1(bar1); 

foo1.getRealAddress()返回相同的值作为&bar1

回答

11

foo1.getRealAddress()返回与&bar1相同的值吗?

是的。

基本上,引用是除了名字之外的所有原始值。这是一个别名。

+4

+1使用单词'别名',这是他们应该被称为开始。 – 2011-02-03 19:30:04

2

是的,地址将是相同的,因为它是相同的Bar实例。