2024/03/19 2
-
10.6 헤더 파일 헤더 파일은 서브 시스템이나 다른 코드에 추상화된 인터페이스를 전달하는 메커니즘이다. 한 가지 까다로운 부분은 여러 헤더 파일을 이용할 때 순환 참조나 중복 인클루드되는 경우를 피하는 것이다. 예를 들어 Logger클래스를 작성해서 모든 오류 메시지를 로깅해야 할 때, 사용자 설정 정보를 받기 위해 Preferences클래스를 사용해야 할 수 있다. 그런데 Preferences클래스가 사용하는 헤더 파일이 의도하지 않게 Logger클래스를 인클루드해버릴 수도 있다. 다음 코드에서 볼 수 있듯이 #ifndef 패턴을 이용하면 순환참조나 중복 인클루드를 막을 수 있다. 모든 헤더파일의 시작부분에 #ifndef 지시자를 넣어서 특정 키워드가 정의되지 않았다는 것을 확인한다. 만약 해당 키워..
-
문제 설명 다음과 같은 다각형 모양 지형에서 캐릭터가 아이템을 줍기 위해 이동하려 합니다. 지형은 각 변이 x축, y축과 평행한 직사각형이 겹쳐진 형태로 표현하며, 캐릭터는 이 다각형의 둘레(굵은 선)를 따라서 이동합니다. 만약 직사각형을 겹친 후 다음과 같이 중앙에 빈 공간이 생기는 경우, 다각형의 가장 바깥쪽 테두리가 캐릭터의 이동 경로가 됩니다. 단, 서로 다른 두 직사각형의 x축 좌표 또는 y축 좌표가 같은 경우는 없습니다. 즉, 위 그림처럼 서로 다른 두 직사각형이 꼭짓점에서 만나거나, 변이 겹치는 경우 등은 없습니다. 다음 그림과 같이 지형이 2개 이상으로 분리된 경우도 없습니다. 한 직사각형이 다른 직사각형 안에 완전히 포함되는 경우 또한 없습니다. 지형을 나타내는 직사각형이 담긴 2차원 배..