刚开始学VC/MFC,看到梁肇新的《编程高手箴言》上有这么一段话:
“还有一种常见的错误,即MFC里面很常见的一种设计思维,就是任何一个东西,只管创建,不管释放、销毁。这种思路是现在很多程序员做的程序没用几下就会死机的原因。这绝对是错误的设计思路,而MFC让你这么做,就是让你永远成不了高手,你写的程序永远不可能稳定。”不知道MFC是不是真的是这样?如果是,那我应该怎样做才能避免这种错误?

解决方案 »

  1.   

    是这样的,当你用MFC来写东西的时候如果不想着把你开出的内存不用了放到,它是不能给释放的,但是对于像一个函数或方法里的变量比如:int i这样的变量在函数体退出的时候会自己来释放的,但是你用new生成的对象就要注意自己来释放.
      

  2.   

    这也不叫错误。
    我想老梁说的应该是像CWnd在收到WM_NCDESTROY,CWinThread在线程结束都会自动删除之类的,是说容易让一般的程序员养成只分配资源不释放资源的不良习惯。
      

  3.   

    new了对象不释放不应该算是MFC的问题吧,而是自己程序的问题。
    按照DentistryDoctor所说的,是不是MFC会自动释放一些它分配的资源而不用程序员管,不知道理解的对不对?
      

  4.   

    老梁的观点很鲜明:程序员应该养成有始有终的处理习惯。
    不过未免偏激,因为照他这么说,auto_ptr的存在不也是错误了吗?
      

  5.   

    说白了,不管用什么最后还是要c/c++过关,不必再意老梁的话,你所说的就是堆和栈的使用和管理,这些问题会导致常见的比如类存泄漏呀什么的,也就是说比如栈用程序自身维护而堆就是你来维护了,《编程高手箴言>>这本书我看过了,我当时当作小说看的,哈哈,老梁说的那个就象楼上几位兄弟说的......
    另外建议你看看林锐的高质量c/c++,相信你一定会受益匪浅
      

  6.   

    对,不管用不用MFC,从一开始就要养成良好的习惯。感谢各位,结贴。