영어 또는 프랑스어 단어를 음절 수로 분류하여 참조해야하는 C++ 클래스를 작성했습니다. 형식이 지정된 사전 파일은 언어에 따라 이름이 지정되며, 읽히고 나면 클래스의 영어와 프랑스어 기능은 같은 논리를 공유합니다.C++에서 파일 문자열을 함수로 전달하는 가장 좋은 방법은 무엇입니까?
는 모든 파일을 포함하는 디렉토리 생성자에 전달되는//Files needed for English
const char sSingleSyllablePath[] = "EN-SGL.txt";
const char sDoubleSyllablePath[] = "EN-DBL.txt";
const char sTripleSyllablePath[] = "EN-TRI.txt";
//...
, 다음 파일 이름 문자열 초기화에서 참조 :
//Files needed for French
const char sSingleSyllablePath[] = "FR-SGL.txt";
const char sDoubleSyllablePath[] = "FR-DBL.txt";
const char sTripleSyllablePath[] = "FR-TRI.txt";
//...
배열은 다른 파일을 같은 이름을 가질 필요가 있지만, 참조 기능.
올바른 파일 이름 지정으로 이것을 호출하는 가장 좋은 방법은 무엇입니까? 동일한 코드이지만 이름이 다른 두 개의 클래스가있는 것은 쉽지만 효율적으로 보이지는 않습니다. 많은 필수 파일들이 있기 때문에, 생성자에서 커다란 매개 변수 목록을 가지고 있지 않은 것 같습니다. - 필요하면 어떤
std::string getLocalized(const std::string &loc, const std::string &filename)
{
return loc + filename;
}
이 별도의 기능 때문 만은 다음과 같습니다
const std::string sSingleSyllablePath = "-SGL.txt";
const std::string sDoubleSyllablePath = "-DBL.txt";
const std::string sTripleSyllablePath = "-TRI.txt";
는 다음과 같은 기능을 정의 할 수 있습니다
언어 별 문자열 테이블에 링크되는 * locale * 개체를 빌드하십시오. –
언어와 씰러 블 번호가 주어진 단일 함수로 파일 이름을 "구성"할 수 없습니까? –