yb0312 2014-12-20 14:41 采纳率: 20%
浏览 3373

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 2014-12-21 08:39
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波