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;
    }
    

Anmelden zum Antworten