2014-10-21 2 views
1

나는 마침내 포인터와 참조의 전체 사용과 개념을 파악한 (한 번 쯤은) 희망을 가지기 때문에 단계를 밟아서 문제를 명확히하기 위해 도움이 필요합니다.벡터 반환 (반환 형식)

private 구성원 벡터가 ClassA 인 개체가 있으므로 vector<myObj> vec입니다.

에 어떤 게터를 사용하여 vec을 반환해야합니까? 중복 할당하지 않고 myObj의 내용을 인쇄 할 수 있습니까? 음주 전, reference에 의해 return VEC에 일반 return vec 필요, 아니면 vec

+3

앞에'const를 &'참조가 가장 적절한 이럴 것이다. –

+0

덕분에 다른 사람들이 동의하는 것처럼 보입니다 – TheGuyWithStreetCred

답변

6

심지어 포인터 당신은 일정 참조에 의해 반환해야합니다 :

const vector<myObj>& ClassA::getVec() const{ 
    return vec; 
} 

이 (내가) 값의 사본이 없다는 것을 의미 (ii) 호출자는 프로그램 안정성을 확보하는 데 도움이되는 참조를 수정할 수 없습니다.

회원 기능을 어떻게 만들었는지 유의하십시오. const. 즉, 상수 인스턴스 ClassA에서이 함수를 호출 할 수 있습니다.

+0

조금 더 자세하게 설명하거나 링크를 제공하십시오. – TheGuyWithStreetCred

+1

http://en.wikipedia.org/wiki/Const-correctness – Bathsheba

+0

감사. 마지막 질문은 'getter'가 아니라 'vec'를 변경 한 다음 'return'하는 함수 인 경우 유형을 변경하겠습니까? – TheGuyWithStreetCred

2

당신은 벡터에 const를 참조를 반환 할 수 있습니다

const vector<myObj>& get() const 
{ 
    return vec; 
} 
+0

감사합니다. 내가 필요한 것 :) – TheGuyWithStreetCred