'실수'에 해당되는 글 1건

  1. 2014.07.13 다중 상속의 함정
posted by pflower 2014. 7. 13. 10:39

sfml 내부 모듈에는 클래스 sf::Sprite에서 제공하는 함수인 setPosition과 나의 게임의 사용자 정의 클래스 pf::entity에서 제공하는 setPosition 함수가 같은 이름으로 존재한다.

다만 이 두 함수는 파라매터 구조가 다르고 디폴트 파라매터가 존재하지 않기 때문에 사용자인 나로서는 서로 다른 함수라고 판단하고, 그냥 써보니 컴파일러에 모호성 오류 메시지가 발생해 형변환(sf::Sprite)을 넣어 주었다.

이 작업 후에는 컴파일러도 형변환 후의 함수를 지시하고 있었다.


  그런데 직접 실행해보니 setPosition 함수가 아예 아무런 효력을 발생 시키지 않는것이다. entity도 Sprite에도 아무런 영향을 미치지 못했다.


  수 시간동안 뻘짓을 하다가. 해답을 찾아내어 이곳에 적어둔다. 다중상속 시에는 네임스페이스를 꼭 밝혀서 쓰거나, 함수 이름을 다르게 하여 구분되게 하여야한다. 그 이외의 경우에는 컴파일러가 자기 멋대로 해버릴수 있다.


같은 실수를 반복하지 않기를