我正在尝试将一些可用的Visual C++代码导入到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) {
}
我使用Qt Creator时,在TabSprite.cpp
的构造函数声明处,遇到了以下错误:
未定义对'appetizer::GraphicsItem::GraphicsItem(appetizer::GraphicsWindow*)'的引用
然而,在GraphicsItem.h
中,GraphicsItem
已经被正确地声明了,所以我不明白为什么编译器找不到它。有人能看出这段代码有什么问题吗?
namespace appetizer { /* definition of TabSprite*/ }
而不是using namespace
是一个好的实践,因为后者有时会出现问题。另外,这不是编译错误而是链接错误。 - Karl von Moor