2012年(158)
分类: C/C++
2012-11-20 10:50:54
这个问题就是调试时,在同一个实例的不同成员函数中,所看到的this值竟然不一样
网友评论2012-11-20 10:53:56
Hercules Space
如果实在要论cout和watch为什么可以不一样。个人认为这是一件好事,这样大家又可以明白cout做了什么,watch它的实际作用又是什么。cout<<this,这句代码使用了标准的C++输出流,要注意的是这个编译器实际要作类型检查的,这里的this无论如何都会是类C的实例。这一部分将会是硬编码(或说是静态的)。再回过头看看watch这个很出色的DEBUG窗口,说它出色就在于此,它不光知道this是类C的实例,还会充分的动态解释它。所以说,cout和watch在这里出现了不一致,但要说的是watch窗口属于debugger部分,它为你提供更为细节的信息。