2011-02-03 3 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입니다. –

+1

@PigBen,해야합니까? 마찬가지로, "연산자 []는 목록의 i 번째 요소의 별칭을 반환합니다." "Reference to"는 나에게 더 합리적으로 들린다. "별칭"은 실제 이름을 가진 참조 변수에 대해 이야기하는 한 괜찮습니다. –

+3

@ Sergey : 그 경우에, 우리가 단어의 실제 사전 정의를보고 있다면, 나는 참조가 실제로 많은 의미가 있다고 생각하지 않습니다. 그것은 우리가 C + +에 뿌리 내린이 모든 시간을 들었을 때 그 말을 듣고 말하기에 익숙하기 때문에 옳은 것으로 들립니다. 우리가 "별칭 별 반환"이라는 말을 듣고 자란 경우, 우리와 마찬가지로 자연스럽게 들릴 것이라고 생각합니다. –

2

예, 주소가 동일하므로 주소는 동일합니다. Bar.