문제

조회 테이블을 사용하여 문자 메시지를 구문 분석하는 메시지 클래스가 있습니다. 많은 메시지를 받고 많은 객체를 생성하고 파괴하기 때문에 동일한 값으로 동일한 테이블을 반복해서 초기화하지 않도록 해당 조회 테이블을 정적 멤버로 선언했다고 생각했습니다.

올바른 접근 방식입니까 아니면 더 적절한 C ++ 방법이 있습니까?

감사.

도움이 되었습니까?

해결책

컴파일러가이를 최적화 할 것으로 기대하지만 이것은 올바른 방법처럼 들립니다. 응용 프로그램을 벤치마킹했으며 테이블을 정적 속도로 선언합니까?

또한 큰 조회 테이블이 많으면 성능이 증가하지만 테이블은 항상 메모리에서 유지됩니다.

다른 팁

메시지 클래스가 정적 조회를 자신의 클래스로 추상화하는 것이 가치가있는 조회 정보를 공유하는 경우 실제로 한 번만 초기화되도록합니다.

그러나 어쨌든 정적 클래스 멤버는 확실히 갈 길입니다.

클래스 변수, 즉 클래스 수준에서 정적 일 수 있습니다. 이렇게하면 서브 클래스가있는 경우 이용할 수 있으며 개별 방법의 정적 로컬 변수로 "숨겨진"경우보다 조금 더 눈에 띄는 것입니다.

예, 모두 괜찮습니다. 때로는 좋은 해결책입니다 : 함수 정적 한 번만 생성됩니다. 또한 싱글 톤 객체를 사용할 수 있지만 더 넓은 접근성이 있습니다.

멀티 스레드 애플리케이션이 있고 조회 테이블 에이 테이블보다 일찍 파괴 될 수있는 다른 데이터에 대한 포인터가 포함되어 있는지 조심하십시오.

싱글 톤 패턴을 사용하는 것도 효과가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top