我有一个类头(class.h)和实现(class.cpp)。我在class.h中声明了几个成员变量,我在class.cpp中没有任何问题地使用它们。我现在尝试在class.h中添加3个成员变量:
double a;
double b;
double c;
我正在初始化这三个类似于class.cpp中其余成员变量的人,如下所示:
Class::Class()
{
a = 0;
b = 0;
c = 0;
//constructor body
}
此代码在执行时编译精细但段错误。 Valgrind说我在“b = 0”行上写了大小为8字节的无效写入以及其他地方使用a,b,c。删除这3个变量时没有问题。这可能是什么问题?有足够的内存可用于该程序。谢谢!
编辑: 我在这里添加了类定义:
class AWidget: public QGraphicsView
{
Q_OBJECT
public:
AWidget( QWidget * parent = 0 );
virtual ~AWidget();
//public functions
private:
Q_DISABLE_COPY ( AlignmentWidget )
void updateWidget();
void updateArrowsVisibility();
void updateAimLineItemVisibility();
double x;
double y;
double z;
QGraphicsScene *scene;
QGraphicsPixmapItem *item;
QGraphicsPixmapItem *aErrorItem;
QGraphicsEllipseItem *circle;
QGraphicsLineItem *LineItem0;
QGraphicsLineItem *LineItem1;
QGraphicsLineItem *LineItem2;
QGraphicsLineItem *LineItem3;
QGraphicsLineItem *LineItem4;
double a;
double b;
double c;
};
AWidget::AWidget(QWidget *parent)
scene( 0 ),
item( 0 ),
aErrorItem( 0 ),
circle(0),
LineItem0( 0 ),
LineItem1(0),
LineItem2(0),
LineItem3(0),
LineItem4(0)
{
//init stuff like scene = new QGraphicsScene(); etc..
a=0;
b=0;
c=0;
}
答案 0 :(得分:0)
我相信你在构造函数定义中缺少:
。试试这个:
AWidget::AWidget(QWidget *parent) :
scene( 0 ),