请问   VC6中使用MFC定义:CString m_strLine="CString Test.";当要清零m_strLine时m_strLine="";与m_strLine.Empty();用哪个?二者有什么区别?

解决方案 »

  1.   

    m_strLine="";  是调用operator=赋值
    m_strLine.Empty(); 是调用类成员函数进行清空
      

  2.   

    内部有一定区别。使用上没有任何区别频繁的重写建议使用Empty
      

  3.   

    m_strLine="";  是调用operator=赋值
    m_strLine.Empty(); 是调用类成员函数进行清空但从效果上来讲,都是一样的
      

  4.   


          感谢楼上几位的参与,谢谢.但我还是有疑问:
                      既然基本一样,那微软何必做CString::Empty()?                  既然MFC有,重点在哪,用意何在?
      

  5.   

    效果是一样的,实现可不一样。operator=和Empty根本就是两个完全的不同的函数。
      

  6.   


    建议用后者,因为CPU执行的指令条数比较少。前者虽然也能达到相同目的,但是耗时更多,因为其主要是为了赋值长字符串用的。而清空只是顺带也能做,或者说比较业余