c++错误:因为下列虚函数是纯的
C++ Error: because the following virtual functions are pure within
我在类中分配对象时有问题。感觉我做得对,但它不让我跑。我已经查过了,但我不知道我做错了什么,或者和其他人有什么不同。我已经注释掉了一堆东西但是它仍然不能运行
rifle.h
#ifndef rifle_H
#define rifle_H
#include <QPainter>
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QTimer>
#include <QDialog>
class rifle : public QGraphicsItem
{
public:
rifle();//(qreal dirx, qreal diry);
//virtual ~rifle();
void move();
protected:
private:
//QPixmap shot;
qreal m_Speed;
qreal m_DirX;
qreal m_DirY;
};
#endif // rifle_H
rifle.cpp
#include "rifle.h"
rifle::rifle() //qreal dirx, qreal diry
// : m_Speed(5.0)
// , m_DirX(dirx)
// , m_DirY(diry)
{
//shot.load(":/pic/rifle.png");
}
rifle::~rifle()
{
}
void rifle::move()
{
setPos(x()+m_Speed*m_DirX, y()+m_Speed*m_DirY);
}
我在这里写代码
void Dialog::fire()
{
qreal dirx = ui->graphicsView->m_FireTarget.x()-200.0;
qreal diry = ui->graphicsView->m_FireTarget.y()-200.0;
qreal length = sqrt(dirx*dirx+diry*diry);
if (length!=0)
{
// normalized direction vector
qreal invLength= 1.0/length;
dirx *= invLength;
diry *= invLength;
// creating an angle perturbation of +/- 3°
qreal alphaPerturbation = static_cast<qreal>(qrand()%6-3) * M_PI / 180.0;
qreal xPerturbation = cos(alphaPerturbation);
qreal yPerturbation = sin(alphaPerturbation);
// cos(a+b)=...
dirx = dirx*xPerturbation - diry*yPerturbation;
// sin(a+b)=...
diry = diry*xPerturbation + dirx*yPerturbation;
/*rifle**/ circle = new rifle(dirx, diry);
scene->addItem(circle);
}
}
http://qt-project.org/doc/qt-4.8/qgraphicsitem.html
要编写自己的图形项,首先创建的子类QGraphicsItem,然后开始通过实现它的两个纯虚拟公共函数:boundingRect(),它返回由项目和paint()绘制的区域,它们实现了实际的绘画。
必须在rifle
中重写这些函数,因为它们是基类中的纯虚函数。
相关文章:
- "error: no matching function for call to"构造函数错误
- 为什么类中的ostringstream类型的成员会导致";调用隐含删除复制构造函数";错误
- 尝试将unique_ptrs推送到向量时使用纯虚拟函数错误
- C++ OpenCV 卡尔曼滤波器构造函数错误
- C++:用户定义的显式类型转换函数错误
- C++ 合并字符串以'system'函数错误
- C++ wmain 函数错误时使用 Unicode
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- C++ 中常量属性的初始化构造函数错误
- 线程 std::调用未知类型,无法专门化函数错误
- 表单显示对话框函数错误,并且不执行下面的语句
- 函数错误 C2059:语法错误:'>'不起作用
- STL向量上出现奇怪的复制构造函数错误
- C++ Visual Studio 重载函数错误:没有重载函数的实例与指定的类型匹配
- C++引用已删除函数错误
- 为什么通过带有文字编号的引用调用会出现"无匹配函数"错误?
- C++ 乘法定义的构造函数错误消息似乎错误
- 在 c++ 代码中将数组传递给函数错误
- FFMPEG avcodec_decode_video2函数错误代码
- 为什么我会收到转换函数错误