Vraag : C++ compilerfout C2039

1>. \ manuscripten \ northrend \ icecrown_citadel \ frozen_halls \ halls_of_reflection \ halls_of_reflection.cpp (748): fout C2039: „SummonGameobject“: is geen lid van 'Creature'
1> c:\documents and settings\latest +kortoc \ master \ src \ game \ Creature.h (390): zie verklaring van 'Creature'

Creature.h (lijn 390) = klassenMANGOS_DLL_SPEC Schepsel: openbare Unit

Could iemand gelieve te verklaren hoe te om „tot SummonGameobject“ een lid van schepsel te maken? Vergeef me, ben ik vrij C++ newbie.

Antwoord : C++ compilerfout C2039

Kant: U hebt ander project waarschijnlijk SummonGameObject als statische methode in de klasse WorldObject uitgevoerd.

GameObject* WorldObject:: SummonGameobject (uint32 identiteitskaart, vlotter x, vlotter y, vlotter z, vlotterhoek, uint32 despwtime)

Deze lijn geeft nochtans de indruk dat het nietstatisch is, maar mijn ruwe gissing is dat het statisch zou moeten zijn omdat het schijnt om Identiteitskaart van GameObject te nemen aangezien de eerste parameter GO_ICE_WALL spelvoorwerp ice_wall betekent. Deze methode is de gebruikelijke Globale raadplegingsmethode die van de voorwerpen van het registerspel de plaats bepaalt en daarom statisch steek houdt te zijn, tenzij ofcourse een worldobject een samengesteld die spelvoorwerp uit andere spelvoorwerpen is wordt samengesteld.

als (GameObject* pGate = m_creature->SummonGameObject (GO_ICE_WALL, 5540.39f, 2086.48f, 731.066f, 1.00057f, 0))

 Misschien kunt u met het andere project controleren en zien hoe zij het hebben gedaan. BTW, als SummonGameobject een GameObject kan terugkeren die niet altijd WorldGameObject kan zijn dan het terugkeertype een strikter beetje zou moeten zijn om verdere unnessary typecasting te vermijden en tot verdere code meer typesafe te maken. Anders houdt het waarschijnlijk meer steek om het in GameObject eerder dan WorldGameObject te zetten.

Het zou zo eenvoudig kunnen zijn zoals kopiërend aan Worldobject.h/cpp (als die de namen zijn). Anders zou u moeten proberen om uw eigen ontwerp te hebben aangezien u pasvorm kunt zien. Het begin door het in Schepsel enkel te bepalen, als u het elders nodig hebt u kan het tot de basisklasse en refactor leiden accordingle.

Minder van een gissingsspel, had u hebben gepost de broncode… zou geweest zijn

Andere oplossingen  
 
programming4us programming4us