2012-01-12 2 views
0

List<Player> 플레이어에 저장된 Player의 인스턴스 이름을 인쇄하려고합니다. 내가 대체해야 할게 뭐야? 이걸 작동 시키려면?반복자를 통해 액세스 된 List에 저장된 객체에 클래스 함수 사용

list<Player>::iterator it; 
    for(it=players.begin(); it != players.end(); ++it) cout << "Plop!" << " "; 
    cout << endl; 

나는 반복자는 정상적인 포인터 될 경우 다르게 처리해야한다는 느낌이

*it.getName(); 
*it->getName(); 

을 시도했습니다. 또는 반복자 *it에 Player 객체가 전혀 없을 수도 있습니다. 그것이 있어야

+0

대안으로 플레이어 클래스에'operator <<'를 구현하는 것을 고려해보십시오. 과부하 또는 친구 기능 중 하나입니다. –

답변

1

만큼 Player이 방법을 갖는 한

1
it->getName(); 

...;

(*it).getName() 

. 연산자는 *보다 더 세게 바인딩하므로 컴파일이 실패하게됩니다.

0

당신은 당신이

*it 

을하고있는 바와 같이, 반복자 역 참조 할 필요가 있지만 왼쪽으로 역 참조 방울, 당신은 당신이 어떤 괄호와 장소에 보관해야합니다 그래서 :) 무슨 뜻인지 알고있는 경우 :

for 루프의 중괄호를 잊지 마세요!

관련 문제