Programmieren - alles kontrollieren 4.936 Themen, 20.625 Beiträge

Linkerproblem in Visual C++

(Anonym) / 5 Antworten / Flachansicht Nickles

Ich habe eine Klasse in einer Extra-Datei definiert dazu noch eine allgemeine Function. Dann eine Header-Datei geschrieben und in meine Hauptdatei eingebunden. Aber irgendwas mache ich völlig falsch. Die allgemeine Funktion ist kein Problem aber bei der Klasse kommt dann " nicht aufgelöstes externes Symbol..". Habe es unten vom Grundprinzip nochmal aufgeschrieben. Woran liegt das Problem ????????

//Test.cpp
#include "stdafx.h"
void Init()
{
MessageBox(NULL,"Algemeine Init","Titel",MB_OK);
}
class App
{
public:
App::App()
{
MessageBox(NULL,"Konstruktor","Titel",MB_OK);
}

App::~App()
{
MessageBox(NULL,"Destruktor","Titel",MB_OK);
}
};

//Test.h
void Init();

class App
{
public:
App();
~App();
};

//Auruf in WinMain
// anwendung.cpp
#include "test.h"
...
...
Init();
App TestObject();

bei Antwort benachrichtigen
(Anonym) Nachtrag zu: „Ja und? Mache das noch nicht solange... Einfach nur class ... ??? “
Optionen

Nein du hast die Klasse App einmal in Test.cpp definiert und ein zweites mal in test.h!!!
Jetzt in deiner Anwendung.cpp legst du eine Instanz von App an, nur woher soll der Linker denn nun wissen, welches die gültige Definition von der App Class ist, die in test.cpp oder die test.h?

Klassendefinitionen gehören in die *.h, Klassenimplementationen in *.cpp!

bei Antwort benachrichtigen