当前位置: 代码迷 >> QT开发 >> already define in *obj 异常 求解
  详细解决方案

already define in *obj 异常 求解

热度:360   发布时间:2016-04-25 04:21:38.0
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 )
这个吗?
  相关解决方案