unresolved external symbol...



  • Hallo,
    ich hänge gerade an einer HA und habe ein Problem beim kompilieren..

    h file

    class MoneyBox
    {
    public:
    	MoneyBox(char* password);
    	~MoneyBox(void);
    .....
    

    cpp file

    MoneyBox::MoneyBox(char* password)
    {
    	this->money =  0;
    	this->failedQuery = 0;
    	this->failOut = 0;
    	this->successOut = 0;
    	this->successQuery = 0;
    
    	this->password = password;
    }
    
    MoneyBox::~MoneyBox(void)
    {
    }
    

    main.cpp

    #include "MoneyBox.h"
    #include <stdio.h>
    
    int main(void)
    {
    	//Create Box
    	MoneyBox* box = new MoneyBox("test");
    	return 0;
    }
    

    Intellisense zeigt mir sogar an, dass ich ein char* übergeben muss...beim kompilieren sagt er allerdings immer unresoved external symbol

    die h und cpp file leigen in einer static library und sind in das Main Projekt eingebunden
    WIeso bekomme ich diesen Fehler?

    greetz



  • Inkludiere am Ende der Header-Datei die Cpp-Datei.

    MfG, EOutOfResources



  • hab den fehler gefunden...

    hatte zwar das verzeichnisn als include mit angegeben aber die referenz nicht hinzugefügt.
    greetz


  • Mod

    EOutOfResources schrieb:

    Inkludiere am Ende der Header-Datei die Cpp-Datei.

    MfG, EOutOfResources

    😕 Wieso sollte er so etwas tun? Das wäre total kontraproduktiv.

    @Threadersteller: Welches Symbol wird nicht gefunden? Vermutlich machst du trotz deiner Versicherung des Gegenteil bei der Benutzung deiner IDE einen Fehler und linkst die verschiedenen Dateien nicht richtig.

    Außerdem: Wenn das mal nicht ein Musterbeispiel für einen sinnlosen Destruktor und einen komischen Stil im Konstruktor ist. Und die Benutzung von new auf diese Art und Weise ist geradezu kriminell. Dein C++-Kurs ist vermutlich nicht sehr gut, muss ich dir mitteilen.



  • Also wieso du den Destruktor explizit deklarierst und definierst verstehe ich auch nicht. Außerdem, hast du schonmal was von einer Initialisierungsliste gehört?

    Lg freeG


Anmelden zum Antworten