一个关于临时对象的BUG
转自:https://blog.csdn.net/TeddyWing/article/details/13170 (博主看完这篇博客之后,感觉自己不会C++了,呜呜呜) 我相信任何一个使用C++超过一定时间的程序员都不会否认这样一个事实:使用C++需要有足够的技巧。它充满了有各种各样的难以识别的陷阱,顷刻就可以让一段看起来毫无破绽的代码崩溃。例如,对C/C++的新手而言,学会如何考虑对象的生存期就是他们必须跨越的一个障碍,这方面最典型的问题,就是对对象指针的使用,特别是在使用一个已经被删除了的对象指针的时候: MyClass *mc = new MyClass; // Do some stuff delete mc; mc->a = 1; // Uh oh...mc is no longer valid! 一些更玄妙的事情发生在函数返回的时候,我们假设一个函数,例如foo()返回一个MyClass类型的对象引用: MyClass &foo() { MyClass mc; // Do some things return mc; } 这段有问题的代码实际上是完全合法的,...