我正在用 Qt 制作贪吃蛇游戏,到目前为止,我还没有成功地从另一个类继承我的一个类。我可以让我的类继承自 Qt 类,如 QObject
或 QGraphicsRectItem
,但不能继承我自己的类。
这是此问题的示例及其错误消息:
#ifndef SNAKE_H
#define SNAKE_H
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QWidget>
#include <QGraphicsRectItem>
#include <QObject>
#include <QTimer>
#include <QKeyEvent>
class Head;
class Food;
class Base; //Error 1
class Snake: public QGraphicsView, public Base //Error 2
{
Q_OBJECT
protected:
const static int width = 820;
const static int height = 500;
public:
Snake();
QGraphicsScene * scene;
QGraphicsView * view;
QGraphicsRectItem * border;
QGraphicsRectItem * border2;
};
#endif // SNAKE_H
////// Errors /////////
/*
Error 1:
forward declaration of 'class Base'
class Base;
^
Error 2:
invalid use of incomplete type 'class Base'
class Snake: public QGraphicsView, public Base
^
*/
那么我到底做错了什么?为什么它不能正确继承,为什么它不能让我对 class Base
进行前向声明?
谢谢!
最佳答案
您需要包含包含 Base
类的头文件,而不是 class Base
(即 #include "Base.h"
)
关于c++ - Qt - 从基类继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33728369/