首页 > 编程知识 正文

函数指针的使用,c语言指针

时间:2023-05-06 07:31:52 阅读:41134 作者:2301

显式使用this指针介绍了this指针对象的定义。 对象的成员函数已知通过this指针对象访问成员变量和成员函数。

默认情况下,this指针是隐式使用的,并作为参数传递给成员函数。 例如,具有student类的成员函数print ()定义如下:

void打印() }

cout 'name=' name endl;

cout 'addr=' addr endl;

cout 'number=' number endl;

}

编译器将按以下方式处理此:

语音打印(student * this ) {

cout 'name=' this-name endl;

cout 'addr=' this-addr endl;

cout 'number=' this-number endl;

}

是将this指针添加到成员函数的参数列表中。 调用成员函数stud3.print ()时,实际上调用如下:

stud3.print(stud3;

此时,将stud3对象的地址传递到波形参考this指针,并且然后根据this的指示参考每个成员。

注意,它们是通过编译系统自动实现的,开发人员不需要将this指针添加到参数中,也不需要将对象stud3的地址传递给this指针。 上述是分析过程,只是为了让读者了解this指针的作用和实现机制。

现在,在将this指针对象传递给对象的成员函数后,可以显式使用this指针对象。 可以通过this指针对象访问变量和函数。 例如:

void打印() }

cout 'name=' this-name endl;

cout 'addr=' this-addr endl;

cout 'number=' this-number endl;

}

此时,通过this指针访问name成员变量。

因为知道this指针是指针,所以可以使用指针降级运算符*来操作this指针并返回到它指向的对象。 例如,*this表示this指针指向的对象。 以下是测试的示例。

程序的执行结果如下。

print ()函数显示可以通过this指针明确访问它指向的对象。 也可以使用指针退化运算符*进行操作,返回到this指针指向的对象。

因此,stud1.print (执行函数调用相当于:

stud1.print(stud1;

在这种情况下,print ()函数中的this指针指向stud1对象。 *this表示stud1对象。

使用指针降级运算符*操作this指针以访问this指向的对象的成员函数或成员变量时,不能省略*this两侧的括号或写为*this.name。 因为成员运算符“.”的优先级高于运算符“*”,*this. name相当于*(this. name ),而this.name无效并导致编译错误。

fzdyet Linux C/C编程教程,Linux系统编程,Openwrt系统开发,微信336013926572996,QQ:1523520001,博客: www .

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