2010-05-21 3 views
0

나는 파일을 처리하는 클래스가 있으며, 하나의 인수를 가진 생성자의 일부로 fstream을 사용하여 파일을 입력하려고합니다. fstream 파일 입력을위한 매크로를 클래스의 일부로 사용하기

나는 기본적으로 내가 클래스 생성자에 인수로 파일 이름을 전달하려면이

class someClass{ 
    public: 
     someClass(char * FILENAME) 
     { 
      fstream fileToProcess; 
      fileToProcess.open(<FILENAME>, fstream::in | fstream::out | fstream::app); 
     } 
}; 

처럼 뭔가를 원하고, 다음 class someClassfstream으로 액세스 할 수 있습니다.

+3

무엇이 질문입니까? –

+0

확실하게'fileToProcess.open (FILENAME, fstream :: in | fstream :: app); 'dtor'에서'fileToProcess'를 닫으시겠습니까? @aJ가 묻는대로 ... * 귀하의 질문은 무엇입니까? * – Johnsyweb

+1

@Johnsyweb :'fstream'은 범위를 벗어날 때 닫힙니다. 따라서 작성된대로 생성자의 끝 부분에서 범위를 벗어납니다. – rcollyer

답변

2

을, 당신은 명시 적으로 열려 호출 할 필요가 없습니다 : 단순히 fstream의 open() 방법에 생성자에게 주어진 문자열을 전달합니다.

using std::fstream; 

class someClass 
{ 
    fstream fileToProcess; 
    public: 
    someClass(char * filename) 
    : fileToProcess(filename, fstream::in | fstream::out | fstream::app) 
    { 
    } 
}; 
3

질문에 레이아웃하는 것처럼 할 수 있습니다. 당신은 매크로가 필요하지 않습니다

someClass(const char *filename) 
{ 
    fstream fileToProcess; 
    fileToProcess.open(filename, ...); 
} 
+1

누락 된 'const'를 찾아내는 +1 – MSalters

관련 문제