05. april 2005 - 15:24Der er
8 kommentarer og 1 løsning
dobbelt dereference pure virtual class
nu må jeg se om jeg kan forklare det her... i en abstract klasse K1 findes metoderne m1 og m2 efter at have instansieret et obj af en childklasse K1c så skriver vi en accessor metode
i denne metode findes konstruktionen int tid=m_device->m1()->m2(); m_device er en pointer til K1 eg K1 * m_device; njamen hva er'ed dog der sker her "m_device->m1()->m2()" -iøvrigt fejler windows med ulovlig handling/sidefejl bla bla.... ;)
gøgemøjet er fra irrlicht implem. af en tidskeeper class, men det er sådan set ligemeget
sagen er at jeg har stykket det her sammen af løse snippets og der er noget ..ged.. enten i de snippets eller min sammenstykning.. (begge er abs muligt:) Det fejler jo -grueligt i selv samme øjeblik metoden(e) kaldes
getTimer() retunerer en pointer til timer objektet ITimer (en del af core i hovedklassen) MEN.. det er en ren virtuel metode fra api: virtual ITimer* irr::IrrlichtDevice::getTimer ( ) [pure virtual] Returns a pointer to the ITimer object. With it the current Time can be received. m_device skulle være null fordi m_device=device; og device er null i dens default men null chec...hmm altså if(!m_device==0) m_Time = m_device->getTimer()->getTime(); -god idé!! crasher ikke, -men retunerer blot 0.. æv.. og dbl æv fordi med det null chek så -skulle- den jo 'arbejde' ..æv Husk at lægge 'svar' :)
nb skal lige høre om jeg har den her var=pt->m1()->m2() siger dereference af pointer til m1 retunerer en pointer til m2 som var så tildeles.. eg vi kunne skrive * tmvar=pt->m1(); int var = tmvar->m2(); ?
nje -ka godt se at det rant ikke er så informativt:) løst, nej -men jeg tror at det er en helt gal vej. Der kommer sidefejl straks metoden updateTimer prøver med m_DeltaTime = m_device->getTimer()->getTime() - m_Time; Det er simpelt hen ikke en lovlig snippet. -fint at forståelsen er det (i det mindste:) Jeg tror at jeg dropper dén timer løsning og ser på noget med clock i ren cpp.. ialtfald tilbage til tegnebrættet- husk at lægge 'svar' mvh + tak.
så lukker jeg for ikke at have uesvarede sp på serberen. Tak til alle.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.