CPen myPen;
CPen *pmyPen;myPen.Create(PS_SOLID,1,RGB(255,0,0));pmyPen->Create(PS_SOLID,1,RGB(255,0,0));这两种方式创建的画笔有什么区别?
内存上有什么不同?

解决方案 »

  1.   

    没很大区别,但用的时候指针的要用new
      

  2.   

    正确写法
    CPen myPen; 
    CPen *pmyPen=new CPen; myPen.Create(PS_SOLID,1,RGB(255,0,0)); pmyPen->Create(PS_SOLID,1,RGB(255,0,0)); myPen.Create(PS_SOLID,1,RGB(255,0,0));  
    所在函数执行完,自动回收内存
    pmyPen->Create(PS_SOLID,1,RGB(255,0,0)); 
    由于是手动分配的内存(CPen *pmyPen=new CPen)所以在使用完后应该用
    delete pmyPen  语句释放内存 否则造成内存泄露