Ich versuche, einige funktionierende Visual C++ - Code in Qt Creator zu importieren, und ich habe einige Kompilierungsfehler, die ich nicht erklären kann. Dies ist mein Code:"Undefinierte Referenz" -Fehler in Qt Creator
// TabSprite.h
#include <GraphicsItem.h>
namespace appetizer {
class TabSprite : public GraphicsItem {
public:
TabSprite(GraphicsWindow* parentWindow);
}
// TabSprite.cpp
#include <TabSprite.h>
using namespace appetizer;
TabSprite::TabSprite(GraphicsWindow* parentWindow): GraphicsItem(parentWindow) {
}
Und Qt Creator geben Sie mir diesen Fehler (bei der Konstruktor-Deklaration in TabSprite.cpp
):
Undefined Verweis auf die ‚Vorspeise :: GraphicsItem :: GraphicsItem (Vorspeise :: GraphicsWindow *)
jedoch GraphicsItem
ist ordnungsgemäß in GraphicsItem.h
deklariert, so verstehe ich nicht, warum die Compiler es nicht finden. Kann jemand sehen, was mit diesem Code falsch sein könnte?
BTW: afaik gibt es einen Unterschied zwischen definieren und deklarieren: In TabSprite.h deklarieren Sie den ctor von TabSprite und in TabSprite.cpp definieren Sie es. –
Ich habe meinen Code geklärt - ich hätte eigentlich "deklariert" und nicht "definiert" schreiben sollen. Ich kann den Code immer noch nicht kompilieren. –
Und ich denke, es ist gute Praxis, 'Namespace Vorspeise {/ * Definition von TabSprite * /}' anstelle von 'using Namespace' zu verwenden, was manchmal kritisch ist. Und: Es ist keine Kompilation, sondern ein Linker-Fehler –