게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++ 구간for문 내의 operator 질문
게시물ID : programmer_20228짧은주소 복사하기
작성자 : 각구
추천 : 0
조회수 : 313회
댓글수 : 2개
등록시간 : 2017/04/08 00:08:02
옵션
  • 베스트금지
  • 베오베금지
  • 본인삭제금지
지정한 디렉토리에 있는 파일 목록들을 출력하는 프로그램입니다.

#include <iostream>
#include <boost/filesystem.hpp>                                                 
                                                                                   
using namespace boost::filesystem;                                                 
using namespace std;                                                               
                                                                                   
int main(int argc, char **argv)                                                    
{                                                                                  
  path p(argv[1]);                                                                 

  for(directory_entry& x : directory_iterator(p))                                  
    cout << "file :  " << x.path() << endl;                                        
                                                                                   
  return 0;                                                                        
}

아주 잘 작동합니다. 그런데 궁금한게 구간for문 내에서 &x에 directory_iterator(p)이 가리키는 값들을 하나씩 대입해서 아래 줄을 실행하잖아요.
그래서 당연히 클래스끼리 하는거니까 directory_iterator 클래스 안에 const directory_entry operater->() 이런식으로 된 연산자가 정의되어 있을줄 알았는데..

const directory_entry * operator->() const;
출처 : https://msdn.microsoft.com/ko-kr/library/hh874878.aspx

저기엔 제 예상과는 다르게 반환값이 directory_entry* 로 되어있네요?
제가 operator를 잘못 이해하고 있는걸까요? 아니면 구간for문을? 아니면 * &const같은 것들을?
그리고 글쓰다가 생각났는데.. directory_iterator 클래스 안에 선언된 directory_entiry이 포인터로 선언된거일까요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호