CKlasse::CKlasse bereits in Klasse.obj definiert - trots #ifndef



  • Hi,
    ich hab eine Klasse angelegt.
    Aber ich bekomme immer die gleiche Fehlermedung:
    "Klasse error LNK2005: "public: __thiscall CKlasse::CKlasse(int *,char *,char *)" (??0CKlasse@@QAE@PAHPAD1@Z) bereits in Klasse.obj definiert"

    Ich habe im Headerfile folgenes:

    😕 😕 😕
    #ifndef KLASSE_H
    #define KLASSE_H
    #pragma once

    class CKlasse : public CUeberklasse
    {
    ...
    };

    #endif
    😕 😕 😕

    Ich dachte dank #ifndef wäre mein Problem aufgelöst!?



  • CKlasse::CKlasse(int *,char *,char 😉

    Das schaut mir eher danach aus als wäre in der CPP die Funtion 2 mal vorhanden ?!

    Prüf mal folgendes:

    Quellcode in der .hpp ?
    Implementierung in einer eigenen .cpp die per #include mehrfach verwendet wird ?
    Die Funktion 2 mal in Klasse.cpp verwendet ?
    Im Projekt bereits CKlasse vorhanden die diesen Konstruktor hat ?



  • Ne damit hat das leider nix zu tuhen, da ich die Klasse in einem anderen Projekt fehler frei benutzen kann.

    Aber im anderen Projekt include ich die Klasse nur einmal, wo hingegen ich sie in dem, wo es nicht funktioniert, mehrmals includiere.

    Irgenwas leuft da mit #idndef schief, denke ich. Oder was meint Ihr?



  • Du hast nicht zufällig eine Instanz deiner Klasse in der Headerdatei erzeugt?



  • Ne viel schlimmer *ganz doll schäm* 😞
    Hab #include "Klasse.cpp" geschreiben.
    Hab das einfach übersehen bei so vielen Klassen.
    Das schon gut peinlich.
    Aber die Compiler Fehlermeldung war auch nicht grad hilfreich.
    Hab halt immer den Fehler an der Falschen stelle gesucht.
    Hab jetzt 5std. gebraucht um das auszufinden - so kann man auch seine Zeit verschwenden.

    Sorry für die dumme Frage aber ich habs einfach nicht gesehen.



  • 🤡

    Die Compilermeldungen kann man nur Interpretieren ;o)
    Aber die Fehlermeldung wirst Du das nächste mal garantiert deuten können. Dafür macht man ja diese Fehler 🙂


Anmelden zum Antworten