C++笔记 - this

216 阅读1分钟
  • this指针是指对象本身的指针。
  • this并不是对象的组成部分。即,使用sizeof(对象)并不会受this指针大小的影响。
  • this指针作为隐含参数传递到对象成员函数,除static修饰的函数外。
  • this指针可以作为参数返回;也可一通过*this的方式,返回对象的副本。
  • this指针只能作为右值使用,即不能对this指针进行赋值。
  • const 函数调用时,传递T* const类型指针;在const函数调用时,传递const T* const类型指针。
  • 下是一个使用this指针的例子:
    #include <iostream>
    
    class num {
      private:
        int m_a;
    
      public:
        num(int a) : m_a(a) {}
    
        num *add_num(int count) {
            this->m_a += count;
            return this;
        }
    
        void show_num(void) { std::cout << this->m_a << std::endl; }
    };
    
    int main(void) {
        num n = num{0};
        n.add_num(1)->add_num(2)->add_num(3)->show_num(); // 输出:6
        n.show_num(); // 输出:6
    }