1、下面程序段包含4个函数,其中具有隐含this指针的是哪个函数?
int f1();
class T
{
public:static int f2();
private:friend int f3();
protect:int f4();
};
静态成员函数属于整个类所拥有,没有this指针
友员函数不是这个类的成员,没有
类的非静态成员函数 有
总之,类的每个非静态成员函数都含有一个指向当前对象的指针,即this指针。
2、this指针是一个隐含于每一个成员函数中的特殊指针。它指向正在被该成员函数操作的那个对象。
3、当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。
4、当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。
5、 在C++中,this指针被隐含地声明为: X *const this,这意味着不能给this 指针赋值;
在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作);
7、this指针的特点:
- this只能在成员函数中使用。
- this在成员函数的开始前构造,在成员函数的结束后清除。