面向对象程序设计问答题OOP6this


1. 什么是this指针,其作用是什么?

  • 定义: $this$指针是C++实现封装的一种机制,它将对象和该对象调用的成员函数连接在一起,在外部看来,每一个对象 都拥有自己的函数成员。每个对象用有独立的数据。每个对象共享同一个方法。$this$是C++中的一个关键字,也是一个 $const$指针,它指向当前对象,通过它可以访问当前对象的所有成员。当前对象指正在使用的对象。如:$ob.show()$,$ob$就是当前对象,$this$就指向$ob$。
  • 作用:
  1. 访问当前对象的所有成员
  2. 在类的非静态成员函数中返回类对象本身的时候,直接使用$return$ $*this$,例如:实现对象的链式引用
  3. 当参数与成员变量名相同时,如this->x=x,不能写成x=x
  4. 避免对同一对象进行赋值操作
class File {
public:
  void copy( File& dest ) {
    if( this == &dest )
      return;
    //……
  }
};

2. 在一个类中,为什么静态成员函数(static member function)中不能使用this指针?

静态成员函数并不是针对某个类的实例对象,而是属于整个类的,为所有的对象实例所共有。它在作用域的范围内是全局的,独立于类的对象之外的。它只对类内部的静态成员变量做操作。当实例化一个类的对象时候,里面不存在静态成员的。$this$指针是相当于一个类的实例的指针,$this$是用来操作对象实例的内容的,既然静态成员函数和变量都是独立于类的实例对象之外的,它就不能用$this$指针。也不能操作非静态成员。


文章作者: 保底不歪抽早柚
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 保底不歪抽早柚 !
评论
  目录