E D R , A S I H C RSS

BackLinks search for "HitFunctionPtr"

BackLinks of HitFunctionPtr


Search BackLinks only
Display context of search results
Case-sensitive searching
  • MoreEffectiveC++/Techniques3of3
          typedef void (SpaceShip::*HitFunctionPtr)(GameObject&);
          static HitFunctionPtr lookup(const GameObject& whatWeHit);
         함수 포인터에 대한 문맥은 별로 좋와 보이지 않다, 그리고 멤버 함수 포인터는 평범하게 보이지도 않다. 그래서, HitFunctionPtr이라고 SpaceShip의 GameObject&를 인자로 가지고 아무것도 반환하지 않는, 멤버 함수들의 포인터를 줄여 형정의(typedef) 했다.
          HitFunctionPtr hfp = lookup(otherObject); // 호출할 함수를 찾는다.
          typedef void (SpaceShip::*HitFunctionPtr)(GameObject&);
          typedef map<string, HitFunctionPtr> HitMap;
         SpaceShip::HitFunctionPtr
         여기에서 collisionMap은 관련배열(associative array)이다. 그것은 클래스의 이름과(string 객체로) SpaceShip 멤버 함수 함수 포인터를 묶는다. 왜냐하면 map<string,HitFunctionPtr>로 하나로 묶였기 때문에, 이제 typedf을 이용해서 한번에 처리하기가 더 쉬워진다.(재미있게도 collisionMap의 선언은 HitMap과 HitFunctionPtr의 typedef 없이 한다. 대부분의 사람들이 이런식으로 처리를 원할 것이다.)
         SpaceShip::HitFunctionPtr
         SpaceShip::HitFunctionPtr
         SpaceShip::HitFunctionPtr
         SpaceShip::HitFunctionPtr
          (*phm)["SpaceShip"] = reinterpret_cast<HitFunctionPtr>(&hitSpaceShip);
          (*phm)["SpaceStation"] = reinterpret_cast<HitFunctionPtr>(&hitSpaceStation);
          (*phm)["Asteroid"] = reinterpret_cast<HitFunctionPtr>(&hitAsteroid);
          typedef void (*HitFunctionPtr)(GameObject&, GameObject&);
          typedef map< pair<string,string>, HitFunctionPtr > HitMap;
          HitFunctionPtr lookup(const string& class1, const string& class2);
          HitFunctionPtr phf = lookup(typeid(object1).name(),typeid(object2).name());
         개념적으로, 멤버 함수를 이용해서 구현하는 것과 동일한 효과를 주지만, 약간 다른점이 있다. '''첫번째'''로 HitFunctionPtr은 비멤버 함수 형의 포인터이다. '''두번째'''로 CollisionWithUnknownObject 예외는 UnknownCollision로 이름이 바뀌었고, 하나가 아닌, 두개의 객체를 받도록 수정되었다. '''마지막'''으로 lookup은 반드시 양쪽의 double-dispatch를 위해 두개의 인자를 받아들인다. 이것은 충돌 체크를 위한 map이 세개의 인자에 대한 정보를 가지는 것을 의미한다.:두가지의 형과, 하나의 HitFunctionPtr정보
Found 1 matching page out of 7548 total pages

You can also click here to search title.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
Processing time 0.0121 sec