기술적 인 질문은 물론 (기술적으로 가능하다면) 스타일 질문이기도합니다. 내 코드에는 파일을로드하고 조작하는 일련의 함수가 있습니다. 다른 구문이 기능은 별도의 네임 스페이스에 존재 있도록이 최소한의 예에서C++ : 프로그램 논리/조건부 네임 스페이스에서 네임 스페이스 사용?
namespace typeA {
void load();
void manipulate();
};
namespace typeB {
void load();
void manipulate();
};
, 분명히 내가 할 수 간단한 파일 형식을 검사하고 TYPEA 호출하는 조항이 있습니다 부하()와 b를 입력을 : 부하() 등을 입력하십시오.
그러나 네임 스페이스 별칭을 사용하여이 작업을 수행 할 수 있는지 궁금합니다. 그것은 네임 스페이스에 수십개의 함수가 호출되어서 모든 if/else 절을 별도로 필요로하므로 코드를보다 깔끔하게 만듭니다.
내가 무엇을 시도했다 : 네임 스페이스 별칭 할당 줄에 오류가 컴파일되지 않습니다
namespace my_type = (ft == "type_A") ? typeA : typeB;
...
my_type::load();
.
이렇게하는 또 다른 방법이 있습니까/이와 같은 상황을 처리하는 일반적으로 허용되는 깨끗한 방법은 무엇입니까?
각 파일 유형에 대한 가상 클래스와 상속이 하나의 옵션이라고 가정합니다. 다른 사람들이 있습니까?
네임 스페이스는 오는 다음 문자열의 사용을 선언합니다. 어떻게 작동할까요? – Infested
템플릿을 사용할 수도 있습니다 ... – Nim
@ 님 : 제안에 감사드립니다. 이 상황에서 어떻게 템플릿을 사용할 수 있습니까? 함수에 대한 입력은 문자열에 의해 전달되는 파일의 내용 만 다를 수 있습니다. – kmh