kostenloser Webspace werbefrei: lima-city


Klasse aus einem void Pointer?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    Ich möchte die Funktion pthread_create() in einer Klasse verwenden. Da die Funktion aber keine Klassen Funktionen nimmt (sagt auch Google) wollt ich eine globale funktion nehmen und die klasse mit this als void * pointer übergeben. Aber irgendwie krieg ich es dann nicht hin den pointer als eine klasse zu verwenden oder in eine klasse umzuwandeln. Wie muss ich das machen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo krisi12345,

    Falls der static_cast<>() nicht funktioniert, kannst Du es ja mal mit einem reinterpret_cast<>() versuchen.

    #include <iostream>
    
    using namespace std;
    
    class MyClass
    {
    	private:
    	int value;
    
    	public:
    	MyClass():value(0)
    	{}
    
    	void setValue(int i)
    	{
    		this->value = i;
    	}
    
    	int getValue()
    	{
    		return this->value;
    	}
    };
    
    void test_cast(void * v)
    {
    	MyClass * c;
    
    	c = static_cast<MyClass*>(v);
    	c->setValue(4);
    }
    
    int main()
    {
    	MyClass c;
    	test_cast((void*)&c);
        cout << c.getValue() << endl;
        return 0;
    }


    [Edit: Funktionierenden Quelltext einfügen]

    Beitrag zuletzt geändert: 10.12.2010 16:00:24 von darkpandemic
  4. Also wie immer wäre die Fehlermeldung des Compilers und der Code gut um das Problem zu sehen.
    Ansonsten kommt mir deine Beschreibung vor, wie folgender Fehler:
    void *ptr;
    klasse *p;
    p = ptr; //hier kommt der Fehler


    Wenn dein Code so aussieht, dann brauchst du nur einen Cast:
    p = (klasse *) ptr;

    Dabei ist wichtig, dass der Cast auch ein Pointer ist.
    Wenn du den * weglässt kommt eine etwas kryptische Fehlermeldung soweit ich mich erinnere.

    Beitrag zuletzt geändert: 14.12.2010 19:17:25 von sektor
  5. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    darkpandemic Lösung hat es schon gemacht!
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!