首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

already define in *obj 异常 求解

2012-12-16 
already define in ***obj错误 求解先上代码:/*game_window.h 文件*/#include qwidget.hclass game_wind

already define in ***obj 错误 求解
先上代码:
/*game_window.h 文件*/


#include <qwidget.h>
class game_window:public QWidget
{
Q_OBJECT
public:
game_window(QWidget *parent, const char *name );
void paintEvent(QPaintEvent*event);
};


/*game_window.cpp 文件*/

#include <qpainter.h>
#include "game_window.h"

game_window::game_window(QWidget *parent, const char *name ):QWidget(parent,name)//构造函数
{
setMinimumSize(720,600); 
setMaximumSize(720,600);
setWindowTitle("Deveil's Tower");

}
void game_window::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QPixmap pixmap_map=("./Resources/map.png");
painter.drawPixmap(0,0,this->width(),this->height(),pixmap_map);

}
[最优解释]
我怀疑是重复包含问题
头文件加
#ifndef GAME_WINDOW_H
#define GAME_WINDOW_H


末尾加
#endif
[其他解释]
错误信息如下:
main.obj : error LNK2005: "public: __thiscall game_window::game_window(class QWidget *,char const *)" (??0game_window@@QAE@PAVQWidget@@PBD@Z) already defined in game_window.obj

1>main.obj : error LNK2005: "public: virtual void __thiscall game_window::paintEvent(class QPaintEvent *)" (?paintEvent@game_window@@UAEXPAVQPaintEvent@@@Z) already defined in game_window.obj
[其他解释]
如果把 Cpp文件中的函数直接放到相应的头文件中,完全通过。
可是老师说最好的变成习惯是在头文件中定义,在cpp文件中的完善具体的函数
求大侠之点~
[其他解释]
看代码像是Qt3?
[其他解释]

引用:
看代码像是Qt3?
这个不重要,关键是怎么解决这样的问题,求大侠帮忙~
[其他解释]
引用:
我怀疑是重复包含问题
头文件加
#ifndef GAME_WINDOW_H
#define GAME_WINDOW_H


末尾加
#endif

加了以后错误依旧
[其他解释]
解决了,
主函数包含文件应该是头文件,而不是cpp文件
分享了
[其他解释]
game_window::game_window(QWidget *parent, const char *name ):QWidget(parent,name)
我这边怎么便也不过,QWidget的构造函数不是
QWidget ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
这个吗?

热点排行