无法将成员变量添加到c++类

Unable to add member variables to c++ class

本文关键字:c++ 添加 变量 成员      更新时间:2023-10-16

我有一个类头(class.h)和实现(class.cpp)。我在class.h中声明了几个成员变量,我在class.cpp中使用它们时没有任何问题。我现在正试图在类中再添加3个成员变量。h:

double a;
double b;
double c;

我正在初始化这3个类似于class.cpp中其他成员变量的家伙,如下所示:

Class::Class()
{
    a = 0;
    b = 0;
    c = 0;
    //constructor body
}

此代码编译良好,但在执行时会出现segfault。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;
}

我相信您的构造函数定义中缺少一个:。试试这个:

AWidget::AWidget(QWidget *parent) :
    scene( 0 ),