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对象思想的主要内容,如果未能解决你的问题,请参考以下文章

谈面向对象思想在C语言的运用

C语言和ARDUINO语言一样吗

浅谈面向对象思想在C语言的运用(热文回顾)

我眼中的面向对象思想

gtk为何要用C语言

在c语言中怎样用c++类中的对象调用c++类中的方法?