比如我重载了一个CListCtrl类叫做CListCtrlEx,那么我在CListCtrlEx中自定义的函数中:int count = GetItemCount();
和int count = this->GetItemCount();两种用法有区别吗?

解决方案 »

  1.   

    那为啥我看到别人的程序中有些地方用this,有些又不用呢?
    难道只是个人习惯问题?
      

  2.   

    有些对象的函数名相同,为了区分调用的是哪一个,加个this指针,表示当前对象的操作
      

  3.   

    用处多多,例:
    void CX::Oper(string name)
    {
      this.name = name; // 可以区分成员变量与函数参数
    }
      

  4.   

    情况可能是这样的,以GetItemCount函数为例,写代码的人知道有这么一个函数,但是有忘了函数名的具体写法,只记得是GetXXX,所以他写一个 this->, 然后由编译器列出函数列表,他只要选择GetItemCount就可以了。所以你看到的代码里,有的地方写了 this,有的地方没写
      

  5.   

    如果有个全局的同样参数和返回值的GetItemCount函数,不加this的话编译器就会报错。因为编译器不知道你是调用类的GetItemCount函数还是全局的GetItemCount的函数。