关于connect中receiver的问题

红酒泡大蒜 2012-05-29 08:24:22
今天自定义了 一个类converter ,在widget中初始了一个实例。
类converter包含两个信号 信号1和信号2
在widget中

converter conv;
connect(ui->dial_1,SIGNAL(valueChanged(int)),&conv,SLOT(slt_setnum1(int)));
可是正常运行

可是定义了

converter *conv;
connect(ui->dial_1,SIGNAL(valueChanged(int)),conv,SLOT(slt_setnum1(int)));

编译可以通过,程序运行中出错
退出代码: -1073741795
{1 ?}

不明白。谁知道两种定义有什么区别
为什么
Ui::Widget *ui;
就可以正常使用?
...全文
147 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
红酒泡大蒜 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
你只定义了一个指针,但没有初始化
改为:converter *conv = new converter;
[/Quote]

我试了出现错误
'new' cannot appear in a constant-expression
ISO C++ forbids initialization of member 'conv'making 'conv' static
invalid in-class initialization of static data member of non-integral type 'converter*'
sno_guo 2012-05-29
  • 打赏
  • 举报
回复
顶下,刚看完你的帖子,我就有答案了,谁知道有两个抢到我前面了,呵呵,是的,没有分配内存。

指针只是一个随机的地址,没有指向一个区域,当然无法调用其中的函数了
zhu_xz 2012-05-29
  • 打赏
  • 举报
回复
你只定义了一个指针,但没有初始化
改为:converter *conv = new converter;
windywater119 2012-05-29
  • 打赏
  • 举报
回复
converter *conv;
这里conv是个无效指针

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧