为什么实例变量的值不会持续存在?

时间:2015-03-27 00:32:02

标签: c++

我在MP1Node类上创建了一个队列,并从recvCallBack方法添加到该队列。我的目标是在从member_list找出nodeLoopOps之后使用此队列发送消息。但是,只要msgQ返回,此队列中的元素{@ 1}}就会丢失。我不明白为什么会这样。 checkMessages是否在类的新实例中执行?为什么checkMessages()不会持续存在?我怎样才能坚持下去?

msgQ

1 个答案:

答案 0 :(得分:1)

很难从提供的骨架代码中确切地说出来。

但这部分有点可疑: 该队列被定义为保存Message类型的对象。 newMsg似乎是在方法recvCallBack()中创建的局部变量。使用Message实例调用scheduleMessage(),此时消息对象已入队。但是,因为Message实例newMsg具有本地范围,所以当recvCallBack()返回时,它将超出范围。

此时我可能希望队列中包含垃圾,但也许它显示为空。