functionpointer
-
ok, ich habe innerhalb einer klasse eine funktion
int release();und eine andere Klasse, die einen funktionspointer auf genau diese Klasse als parameter im ctor haben will:
template<class TextureType> class TexturePointer{ private: int (*privateRelease)(); TextureType* Texture; public: TexturePointer(int (*ReleaseFunc)(),TextureType* Type):privateRelease(ReleaseFunc),Texture(Type){} };so, nun ruf ich den ctor auf:
return Texture::TexturePointer<PDIRECT3DTEXTURE9>(Textures.getAllocator(TextureName).Release,Textures.getAllocator(TextureName).getTexture()); //jaja,lang,ich weis^^Erklärung: ich hab nen textur container, der dynamisch texturen erstellt, mit getallocator bekommt man zugriff auf einen member der Klasse TextureAllocator, der die textur und die methode Release enthält.
nunja, ich bekomm den fehler:
[C++ Error] DirectXtextures.cpp(72): E2285 Could not find a match for 'TexturePointer<IDirect3DTexture9 >::TexturePointer(int ( (_closure )())(),IDirect3DTexture9 * *)'was hab ich übersehen? ich weis, dass man bei methoden noch irgendwas beachten muss, aber auf function-pointers.org hab ich nichts entdeckt...
-
Funktionspointer != Methodenpointer
Schau mal in die FAQ, da steht wie man einen Methodenpointer korrekt
anlegt und benutzt.Devil