2014. 7. 13. 10:39
sfml 내부 모듈에는 클래스 sf::Sprite에서 제공하는 함수인 setPosition과 나의 게임의 사용자 정의 클래스 pf::entity에서 제공하는 setPosition 함수가 같은 이름으로 존재한다.
다만 이 두 함수는 파라매터 구조가 다르고 디폴트 파라매터가 존재하지 않기 때문에 사용자인 나로서는 서로 다른 함수라고 판단하고, 그냥 써보니 컴파일러에 모호성 오류 메시지가 발생해 형변환(sf::Sprite)을 넣어 주었다.
이 작업 후에는 컴파일러도 형변환 후의 함수를 지시하고 있었다.
그런데 직접 실행해보니 setPosition 함수가 아예 아무런 효력을 발생 시키지 않는것이다. entity도 Sprite에도 아무런 영향을 미치지 못했다.
수 시간동안 뻘짓을 하다가. 해답을 찾아내어 이곳에 적어둔다. 다중상속 시에는 네임스페이스를 꼭 밝혀서 쓰거나, 함수 이름을 다르게 하여 구분되게 하여야한다. 그 이외의 경우에는 컴파일러가 자기 멋대로 해버릴수 있다.
같은 실수를 반복하지 않기를