저는 재미있는 프로젝트로 다른 게임을 구축 할 수있는 기반으로 상당히 견고한 2D 게임 엔진을 개발하고 있습니다. (이미이 작업을 수행하고 있지만 이미 알고 있습니다. 재미 없어).C++ 예외와 같은 메시지 전달
나는 엔진 내에서 클래스 간의 메시지 전달을 수행하는 좋은 방법을 찾아 내려고하고있다. 처음에는 예외의 계층 구조를 사용하고 필요할 때마다 예외를 던지려고 생각했습니다. 그러나 그런 식으로 개발하면서 상당히 일반적인 예외 (경로 찾기 및 단위 찾기 기능을 처리하는 서브 루틴의 일부와 함께 상태를 테스트해야하는 항목)에 예외가 많이 발생했습니다. 게임 보드 많이). 예외가 길 찾기에서 유닛을 가로 질러 왔고 주변을 돌아 다닐 필요가있는 것과 같은 경우에 예외가 사용되면 TileOccupied 예외가 발생하고 길 찾기가 정상적으로 처리하고 계속 진행할 수 있습니다. 예상 할 수 있듯이 이로 인해 많은 예외가 생겼습니다.
인터넷에서 예외 처리는 수행해야하는 모든 런타임 처리로 인해 비용이 많이들 것이라고 말했습니다. 하지만 그들은 내가 필요로하는 것을 완벽하게 처리합니다. 이것은 어떤 일이 발생했거나 예상했던 것과 다른 일이 발생했음을 나타 내기 위해 분기 서브 루틴을 통해서도 호출자에게 메시지를 전달할 수 있습니다.
C++에서 이것을 수행하는 깨끗하고 효율적인 방법이 있습니까? 또는이 유형의 알림을 사용하는 경우 매우 잘못 구성됩니다. 난 아직 배우는 중이에요, 그래서 어떤 제안을 크게 감상 할 수있다 (그리고 난 당신이 내 길을 던질 수있는 참조를 배울 수 읽기/기꺼이) 나는 BTW 표준 C++에서이 작업을 수행하기 위해 노력하고있어
을 편집을 . 나는 그것을 리눅스에 쓰고 있는데, 그것을 컴파일하고 실행 가능한 플랫폼 독립적으로 만들고 싶다. 현재 Boost를 사용 중입니다.
예외적 인 경우 예외를 사용해야합니다. "정상적인"프로그램 논리에 사용하지 마십시오. – Cogwheel
나는 그것을 지금 깨달았다. 그래서 예외를 사용하지 않고 동일한 스타일의 사용을 처리 할 수있는 더 나은 방법을 찾으려고합니다. – Veaviticus
프레임 워크를 사용하고 있습니까? 부스트, 닷넷 등? – Caladain