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?
[其他解释]