首页 > 编程知识 正文

c++this指针的用法,c语言指针用法举例

时间:2023-05-05 08:55:25 阅读:41136 作者:3202

C this指针详细信息

this是c的关键字,是指向当前对象并可访问当前对象所有成员的常数指针。 以下是小编为大家整理的C this指南的详细内容。 请作为参考~

C this指针详细信息

当前对象是指正在使用的对象。 例如stu.show (;stu是当前对象,this指向stu。

以下是使用this的完整示例:

#包含

用户命名空间STD;

类student {

公共:

语音集名称(char * name );

语音设置(intage;

语音目录(浮动目录);

void show (;

隐私:

char *name;

int age;

浮动得分;

(;

语音稳定:3360 set name (char * name )。

this-name=name;

}

语音事件:3360 setage (intage )。

this-age=age;

}

voidstudent:3360setscore{

this-score=score;

}

void Student:show (

出局了

}

int main () )。

Student *pstu=new Student;

ptu-setname(wjdxrk );

电源设置(16;

紧急设置核心(96.5;

pstu - show (;

返回0;

}

执行结果:

wjdxrk的年龄是16,成绩是96.5

this只能在类内部使用。 使用this,可以访问类的所有成员,包括private、protected和public属性。

在本例中,成员函数的参数和成员变量的重复名称只能在this中区分。 以成员函数setname(char*name )为例,其参数为name,与成员变量name同名。 如果写name=name; 这样的语句不是为成员变量name赋值,而是为形参name赋值。 写this - name=name; 之后,=一眼就可以看到左边的name是成员变量,右边的name是形参。

请注意,this是指针,使用-访问成员变量或成员函数。

this在类内部使用,但仅在创建对象后为this赋值。 此外,分配此值的过程由编译器自动完成,不需要用户干预。 此外,用户也不能明确为this赋值。 在本例中,this的`值和pstu的值相同。

试着向Student类中添加成员函数printThis (),以证明它将输出this的值,如下所示:

void student :3360打印this (

出局了

}

然后调用main (用函数创建对象,然后打印this )。

Student *pstu1=new Student;

pstu1 - printThis (;

出局了

Student *pstu2=new Student;

pstu2 - printThis (;

出局了

执行结果:

0x7b17d8

0x7b17d8

0x7b17f0

0x7b17f0

可以看到,this确实指向当前对象,并且值因对象而异。

一些注意事项:

this是常数指针,不能更改值。 不允许更改指针的所有操作,如赋值、增量和减量。

this只能在成员函数内部使用,在其他地方使用也没有意义,是违法的。

this仅在创建对象时有意义,因此不能与静态成员函数一起使用。 关于静态成员将在后面叙述。

this到底是什么

this实际上是成员函数的参数,在调用成员函数时将对象的地址作为实际参数传递给this。 但是,名为this的参数是隐式的,不会出现在代码中,编译器在编译阶段会隐式添加到参数列表中。

this作为隐式参数,本质上是成员函数的局部变量,因此只能在成员函数内部使用。 此外,只有在从对象调用成员函数时,才能为this赋值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。