2024/03/04 3
-
문제 설명 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은 "#"의 값을..
-
이번에는 Sowrd를 추가한것과 마찬가지로 같은 방법으로, FistAnimationd을 추가한다. 새롭게 추가하는 애니메이션 이지만, 전에 구축해놓았던 애니메이션의 로직으로 인해 많은 수정사항이 발생하지 않고 애니메이션만 독립적으로 추가할 수 있다는 점에 주목하자. BP_Fist 우선, BP_Sword를 복사해서, BP_Fist를 만들어준다. 이 무기를 장착하면, 상태를 Fist로 바꾸고, BP_Fist의 공격모션을 사용하게 할 것이다. 기본적인 구현도 이다. Collision의 위치를 4개 지정해서, Sphere Collision을 4개 생성하여, 양손, 양발에 장착할 수 있도록 한다. 그렇기 때문에, 지금까지 무기를 들면 플레이어에서 장착위치를 지정하였지만, 무기에서 장착 위치를 정의해주어야 한다. ..
-
9.6 상속과 관련된 미묘한 문제들 클래스를 확장할 때는 여러 가지 문제가 발생한다. 클래스의 어떤 특성이 유지되고 어떤 특성이 변경되도록 할 것인가? virtual 키워드의 사용 여부는 어떤 영향을 끼치나? 등등... 9.6.1 오버라이딩을 통한 메서드의 특성 변경 대부분 구현 내용을 변경하기 위한 목적으로 메서드를 오버라이딩한다. 하지만 어떤 떄는 구현 내용이 아니라 메서드의 다른 특성을 바꾸고 싶을 때가 있다. 9.6.1.1 리턴 타입 변경 메서드를 오버라이딩할 때는 원본 메서드의 선언, 즉 메서드 프로토타입과 완벽히 같게 오버라이딩을 하는 것이 기본이다. 즉, 구현 내용은 바뀌되 메서드의 프로토타입은 바뀌지 않는다. 그런데 꼭 그래야 하는 것은 아니다. C++에서는 오버라이딩하는 메서드의 리턴 타..