Qt4版本的信号槽写法

本文讨论了C++中SIGNAL和SLOT宏在处理信号槽连接时的作用,指出它们将函数原型转换为字符串避免了编译期间的函数重载问题,但也可能导致运行时错误,除非原型正确且符合类型约定。
摘要由CSDN通过智能技术生成

​​​​​​

connect(

teacher,

SIGNAL(hungry(QString)),

student,

SLOT(treat(QString))

);

这里使用了SIGNALSLOT这两个宏,宏的参数是信号函数和槽函数的函数原型。

因为直接填入了函数原型,所有这里边编译不会出现因为重载导致的函数指针二义性的问题。但问题是如果函数原型填错了,或者不符合信号槽传参个数类型约定,编译期间也不会报错,只有运行期间才会看到错误log输出。

原因就是这两个宏将后边参数(函数原型)转化成了字符串。目前编译器还没有那么智能去判断字符串里边的内容符不符合运行条件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值