17、this指针详解
a.this 指针是C++中的一个关键字,也是一个const指针,它指向当前对象,通过它可以访问当前对象的所有成员。
void Student :: setNam(char*name){
this ->name = name;
}
this虽然用在类的内部,但是只有在对象被创建以后才会给this赋值,并且这个赋值的过程是编译器自动完成的,不需要用户干预,用户也不能显示的给this赋值。
b.this是const指针,他的值是不能被修改的,一切企图修改该指针的操作,如赋值,递增,递减等都是不允许的
c.this只能在成员函数内部使用,用在其他地方没有意义,也是非法的。
d.只有对象被创建后this才有意义,因此不能再static成员函数中使用
e.this实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给this。不过this这个形参是隐式的,它并不出现在代码中,而是在编译阶段由编译器默默地将它添加到参数列表中
f.this作为隐式形参,本质上是成员函数的局部变量所以只能在成员函数内部使用,并且只有在通过对象调用成员函数时才给this赋值。
a.this 指针是C++中的一个关键字,也是一个const指针,它指向当前对象,通过它可以访问当前对象的所有成员。
void Student :: setNam(char*name){
this ->name = name;
}
this虽然用在类的内部,但是只有在对象被创建以后才会给this赋值,并且这个赋值的过程是编译器自动完成的,不需要用户干预,用户也不能显示的给this赋值。
b.this是const指针,他的值是不能被修改的,一切企图修改该指针的操作,如赋值,递增,递减等都是不允许的
c.this只能在成员函数内部使用,用在其他地方没有意义,也是非法的。
d.只有对象被创建后this才有意义,因此不能再static成员函数中使用
e.this实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给this。不过this这个形参是隐式的,它并不出现在代码中,而是在编译阶段由编译器默默地将它添加到参数列表中
f.this作为隐式形参,本质上是成员函数的局部变量所以只能在成员函数内部使用,并且只有在通过对象调用成员函数时才给this赋值。