Probleme mit Klasse



  • hI @ all,

    ich hab da ein kleines Prob mit einer Thread Klasse ich bekomm volgenden Fehler und weiss nich so recht was ich damit anfangen soll ... vieleicht hat ja jemand von euch ne idee dazu....

    'CThread::CThread' : Ereignistyp für Konstruktoren nicht erlaubt
    

    ich weiss das es geht .. deswegen die verwunderung .. nur nu gehts nichmehr ...

    schonma dank für eure hilfe..

    so long



  • Zeig mal den Code, auf den die Fehlermeldung zeigt.



  • Paar infos und bisschen mehr Code wären schon ok... 😉

    Devil



  • Hi...

    hier der code:

    #include "StdAfx.h"
    #include "thread.h"
    
    CThread::CThread
    :m_pThread(NULL) // hier zeigt er an allerdings is m_pThread in ordnung
    {
        m_ThControl.m_bEndThread = false;
        m_ThControl.pSet = NULL;
    }
    CThread::~CThread(void)
    ...
    ...
    

    ich komm irgendwie nich drauf 😕

    so long



  • 😃 .. heh e.. ja is mir denn auch aufgefallen das es doch ein bischen wenig info is ... sorry 😉



  • hier mal noch die Headerdatei der Klasse...

    #pragma once
    class CThread
    {
    public:
        CThread(void);
        ~CThread(void);
    protected:
        CWinThread* m_pThread;
    
        struct CONTROL {
            bool m_bEndThread;
            CProgSet* pSet;
        } m_ThControl;
    
    public:
        static UINT Thread (LPVOID pParam);
    
        bool Start(void);
        void SetRecordSet(CProgSet* pSet);
    }
    

    so long ...



  • [cpp]
    CThread::CThread**()**
    :m_pThread(NULL) // hier zeigt er an allerdings is m_pThread in ordnung
    {[/cpp]



  • Die Klammern beim Konstruktor fehlen.

    Mist dEUs is schon wieder schneller ... *g*

    Devil

    [ Dieser Beitrag wurde am 07.06.2003 um 21:37 Uhr von devil81 editiert. ]



  • sorry, war mein Kopierfehler... die klammern sind da... sieht normal so aus

    CThread::CThread(void)
    

    so long...



  • CThread::CThread(void*)

    schon mal probiert ?

    Devil



  • Kannst du bitte mal die zugehörige Fehlernummer posten? Das CXXX, was vor dem Fehler steht.



  • jupp, nachdem du es geschrieben hast 😃 ... aber leider ohne erfolg ... is ja nich in CThread deklariert...dadurch bekomm ich dann nochmehr fehlermeldungen .... ich weiss die lösung liegt mit sicherheit ma wieder direkt vor mir .. nur find ich se nich .. wie immer eben 😉



  • sorry hatte dein post etwas spät gesehn ...

    fehlernummer ist : C2533

    so long...



  • hm, irre ich mich, oder ist es normaler weise nicht so :

    construktor::construktor(var p1) : m_p1(p1);
    

    ???

    Du kannst doch nur dass übergeben, was er auch in der parameter liste bekommt...

    Devil



  • @devil
    nö ...

    @return0:
    probier mal, obs überhaupt an der Initialisierungsliste liegt: schmeiss sie mal raus.
    Laut der MSDN heisst der Fehler: Ergebnistyp für Konstruktoren nicht erlaubt.
    Bist du sicher, dass du bei deinem Konstruktor keinen Rückgabetyp angegeben hast?
    Beispiel aus der MSDN sieht nämlcih so aus:

    [Compiler Error C2533]
    "Bezeichner": Ergebnistyp für Konstruktoren nicht erlaubt
    Ein Konstruktor kann nicht über einen Wert oder einen Rückgabetyp verfügen (auch nicht über den Rückgabetyp void).
    Im folgenden Beispiel wird C2533 erzeugt:

    // C2533.cpp
    class X
    {
    public:
       X();   
    };
    
    int X::X()
    // try the following line instead
    // X::X()
    {   // C2533
    }
    
    int main()
    {
    }
    

    [ Dieser Beitrag wurde am 07.06.2003 um 22:52 Uhr von dEUs editiert. ]



  • Original erstellt von devil81:
    **hm, irre ich mich, oder ist es normaler weise nicht so :

    construktor::construktor(var p1) : m_p1(p1);
    

    ???

    Du kannst doch nur dass übergeben, was er auch in der parameter liste bekommt...

    Devil**

    Nee du kannst auch irgendeinen anderen Wert übergeben, das Simikolon ist aber glaub ich falsch.



  • Öhm ...
    Probiers mal mit nem Semikolon am Ende deiner Klassendeklaration in der Headerdatei, du hast dort das Semikolon nach der schliessenden geschweiften Klammer vergessen!



  • LOOOOOOOOOL... ok Danke Jungs .. das mit dem Semikolon wars wirklich .. ich hab langsam abers icher echt angefangen zu zweifeln ... und danke für den dezenten hinweis das ich mich bei der Fehlermeldung verschrieben hatte 😃 ...

    nu klappts auf alle fälle wieder....

    thx a lot ...

    so long... 😉


Anmelden zum Antworten