C语言模拟C++的this对象思想
Posted LC编程开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言模拟C++的this对象思想相关的知识,希望对你有一定的参考价值。
C语言模拟C++的this对象思想
通过前面对this指针对象的学习,知道this指针对象的定义和工作机制。它是实现C++面向对象编程的基础。掌握了this指针对象的工作机制,我们也可以使用C语言来模拟this指针对象的工作,实现C语言的面向对象编程。
所以,理解了this指针对象的工作机制,我们就可以使用C语言来模拟C++的思想,实现面向对象编程。程序测试例子如下:
程序运行结果如下:
程序分析如下:
(1) 定义结构体类型struct c_student,在结构体中定义了成员变量和成员函数,其成员函数的第一个参数,必须是当前结构体的类型,相当于this指针的类型。
(2) 定义对象初始化函数c_student_init(),给对象的函数指针成员,设置指向对应的函数。
(3) 调用stud1结构体对象的函数指针,如下:
//调用stud1的成员函数
stud1.construct(&stud1, "www.mylinux.vip");
stud1.print(&stud1);
此时,函数的第一个参数,必须是调用当前函数的对象。这个就模拟了C++的this指针。所以,在construct(), print() 函数指针内部,就有了pthis参数,可以指向调用当前函数的stud1对象,就可以访问到调用当前函数的stud1对象。这个功能,实现了C++的this指针机制。所以,C++的this指针是一个非常重要的概念。
充分理解this指针的工作机制,就可以使用C语言来进行面向对象编程。那么,C语言也可以编写封装性好、模块化好的程序。
韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
以上是关于C语言模拟C++的this对象思想的主要内容,如果未能解决你的问题,请参考以下文章