当前位置:首页 » 多媒体相关

this的疑问


我是初学者!!我对this这个指针理解不很到位!!尤其对c++函数中隐藏的this和vc中各个界面及c...类中的this的理解更是不行,希望各位大侠们,能把你们对this的一些看法说与我听一听,我也好能更上一层楼!!!!!

推荐阅读

  • IT [详细内容]
  • 追赶9600XT!火旋风9518XT冰翼超频限量版 [详细内容]
  • 7610自动重启解决经验之小谈 [详细内容]
  • IT [详细内容]
  • 响应市场!小影霸R9600显卡降价200元 [详细内容]
  • 联通也能上GPRS啦 [详细内容]
  • IT [详细内容]
  • 网友回答:
    网友:bcpl

    设有类  
      class   ctest  
      {  
      public:  
              void   test()  
            {  
                    cout   <<   this->m_nval   <<   endl;  
            }  
            int   m_nval;  
      };  
      //  
      调用时  
      ctest   t;  
      t.m_nval   =   123;  
      t.test();  
      可以想象编译器在暗中为类每个成员添加了一个指针形参(ctest   *),  
      故ctest::test()实质上为ctest::test(ctest   *this),  
      而调用t.test()时则变为t.test(&t),  
      从而存在一个名为this的指针  
      cout   <<   this->m_nval   <<   endl;  
      当然也可以直接写cout   <<   m_nval   <<   endl;  
      那样编辑器会自动加上"this->"

    网友:steedhorse

    this指针是隐含属于类的非静态成员函数的,当从一个对象上调用某个成员函数时,这个成员函数的this指针就指向该对象,当再次从另一个对象上调用这个成员函数时,这个函数的this指针就指向另一个对象。  
      原因是成员函数的代码每个类只有一份,而不是每一个对象都有一份,因此需要有一种内部机制保证调用a.f()时,能够操纵a对象,而且操纵的就是a对象,而不是b对象,this指针就是这种机制的实质。

    网友:zhouyong0371

    每一个类都有一个this指针指向类的实例,创建一个类的实例以后,this就指向自己了,不用初始化

    网友:reval

    用this引用可以明确区分当前类的成员变量与函数中的局部变量

    网友:vcforever

    this指针是指向当前类对象的指针

    网友:lazycat818

    我认为vcforever(霓裳羽衣)   说的最恰当,this指向的是类的实例,而不是类本身,如果指向类本身的话,它只能是静态的了,而this不是静态的。  
       
       
      这和vb的me是一样的,和delphi的self应该也一样吧?

    .

    讨论区

    Login