2 yb0312 yb0312 于 2014.12.20 22:41 提问

QT访问类成员变量出错,求解

编译能通过,运行时程序出错自动退出,用debug检查提示
“底层由于接受到操作系统的信号而停止
信号名称:SIGSEGV
信号意义:Segmentation fault”

断点在成员变量的访问上,整了一天,没弄明白,快崩溃了。
程序大概是这样:

 class CMeta : public QGraphicsPathItem
{
public:
    void test1();
private:
    QPointF mTest;
}
void CMeta::test1()
{
    QString str;
    str.sprintf("%f",mTest.x());
    QMessageBox::about(NULL, "About", str);
}

在程序中调用test1(),出错

 CMeta *mMeta = qgraphicsitem_cast<CMeta *>(startMetas.first());
    //QList<CHtPts*> *mHtPts = mMeta->GetHtPts();
    mMeta->test1();

1个回答

yb0312
yb0312   2014.12.21 16:39

解决了,原因为派生的CMeta类,未返回自定义type号,导致CMeta指针不能被正确返回,所以内存出错

Csdn user default icon
上传中...
上传图片
插入图片