C语言如何实现C++中对象属性和方法

  在C++中,我们常见到用类定义一个对象,这个对象可以有他自己的属性(数据)和方法(函数),而在C语言的正常语法中,是禁止在结构体中定义函数的。

  在一个关于触摸屏的驱动程序中发现,用C语言的也可以实现对象的方法(函数)。

  首先定义一个按键的结构体。

      C语言如何实现C++中对象属性和方法

  1、我们先来讨论第二个函数指针void(*btn_command)(); 我们用该结构体定义的对象想要使用这个函数指针实现方法的效果之前,需要对这个指针赋予一个同类型的函数指针(无形参的函数指针)。例如

C语言如何实现C++中对象属性和方法

   C语言如何实现C++中对象属性和方法

  在这里函数的名字,即为指向该函数的指针。在使用此方法时,只需

  C语言如何实现C++中对象属性和方法

  我们又会想到,当我们需要的方法需要调用对象自身的属性(数据)时,我们改如何操作呢?

  接下来我们看第一个函数指针。

  2、void (*draw_btn)(void * btn); 他同样定义了一个函数指针,但他的入口参数需要一个任意类型的指针,我们在使用它时,需要用强制转换类型操作,将其转换为我们需要的指针类型(实参的指针类型)。这个方法在使用前,同样需要将他赋值为一个同类型函数的函数指针(此处是形参为一个任意类型的指针)。例如

      C语言如何实现C++中对象属性和方法

       C语言如何实现C++中对象属性和方法

  在下面的函数中,先将形参转换为我们需要的指针类型(Touch_Button *),在转入到一个同类型的指针中,就可以用同类型的指针调取该类型的属性了。

  使用时,只需要将我们需要的对象的地址传入即可。如下,

C语言如何实现C++中对象属性和方法

原文链接: https://www.cnblogs.com/xiaocheng7/p/9420362.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C语言如何实现C++中对象属性和方法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/278711

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午3:39
下一篇 2023年2月15日 上午3:39

相关推荐