problem mit function-pointers
-
Hier meine test - Klasse
#include <iostream> using namespace std; class TestClass { private: void* structPointer; void (*function)(void*); public: TestClass(void* insertStructHere) { structPointer = insertStructHere; } void excecuteFunction(void (*function)(void*)) { function(structPointer); } };und meine main-function
main.cpp: #include <iostream> #include "TestClass.h" using namespace std; struct TestStruct { TestStruct(int q, int p):a(q),b(p){}; int a; int b; }; void myFunction(TestStruct myStruct) { cout << myStruct.a; } int main() { TestStruct myStruct(3,4); cout << myStruct.a << endl; TestClass myClass(&myStruct); myClass.excecuteFunction( (void (*)(void*)) &myFunction); return 0; }bei dem funktionsaufruf über excecuteFunction, wird ein falscher wert ausgegeben.
-
void myFunction(TestStruct* myStruct) { cout << myStruct->a; }