Qt-从基类继承类
Qt - Inheriting a Class from a Base Class
我正在用Qt制作一个蛇游戏,到目前为止,我还没有成功地从我的另一个类继承我的一个类。我可以让我的类从像QObject
或QGraphicsRectItem
这样的Qt类继承,但不能从我自己的类继承。
下面是这个问题的一个例子,以及它的错误消息:
#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
类(即#include "Base.h"
)的头文件,而不是class Base
invalid use of incomplete type 'class Base' class Snake: public QGraphicsView, public Base
编译器错误通常可能是模糊的,但这次不是。除非有指向它的指针,否则不能使用正向声明的类。这也包括继承它。您需要预先将要继承的类包含在源中或包含在其中。
相关文章:
- C++ 继承:基类中重载 operator+ 的 2 次在派生类中无法正常工作
- 使用 "using" 关键字继承基类的复制和移动构造函数
- 获取继承基类类型的元组
- C++:继承基类方法
- 当我们想要私下继承基类时,为什么要进行名称公开
- 继承基类,定义基类的原型方法,但从第三个对象调用子类的方法
- C++继承基类使用派生类的成员
- C++-Do派生类继承基类的静态成员
- C++ OOP 体系结构:决定是从基类声明对象还是继承基类
- 继承基类时遇到问题
- 继承基类的一部分
- 我不希望派生类继承基类的构造函数
- 派生类继承基类赋值运算符
- C++继承基类析构函数
- 派生类是否继承基类使用的前向声明?
- 我继承基类以及多重继承的超类
- c++中的派生类构造函数可以继承基类构造函数吗?
- 继承的问题:派生类不继承基类
- 使子类继承基类的现有实例
- c++防止继承基类的特定公共成员