• 3610阅读
  • 2回复

[提问]求解一个简单的c++(qt)问题 [复制链接]

上一主题 下一主题
离线wangjue
 
只看楼主 倒序阅读 楼主  发表于: 2012-03-18
QString temp,frameGeo;
frameGeo = temp.setNum(frameGeometry().x())+","+               temp.setNum(frameGeometry().y())+","+               temp.setNum(frameGeometry().width())+","+               temp.setNum(frameGeometry().height());
本来我是希望得到框架的左顶点坐标和框架的长宽,但结果一直不正确,最后分析了一下,是上面的代码出现了问题
大概分析了一下,似乎在temp 字符串生活的过程中发生了字符的覆盖,最后导致 temp.setNum(frameGeometry().x())   temp.setNum(frameGeometry().y()) temp.setNum(frameGeometry().width())   temp.setNum(frameGeometry().height())  结果相同,与猜想不符。这四个值都和第一个结果相同,不知道为什么?具体怎样覆盖的?求解!
离线dbzhang800

只看该作者 1楼 发表于: 2012-03-19
简单说,就是,你先对一个 temp 连续调用了 4 次 setNum(当然最后调用的一个起作用),然后在将该 temp 自身相连。

这其中涉及了未指定行为,可参考 http://hi.baidu.com/cyclone/blog/item/aa56e5dd1c3cf9e276c638fa.html

即使不考虑这种行为,你的代码仍是不对,setNum 返回可都是引用啊?



离线jdwx

只看该作者 2楼 发表于: 2012-03-19
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个