问题描述
- 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();
解决方案
解决了,原因为派生的CMeta类,未返回自定义type号,导致CMeta指针不能被正确返回,所以内存出错
时间: 2024-11-03 21:57:34