基于C语言的面向对象编程(2)

student.c文件:
在.c文件中声明private方法,实现所有的构造方法和析构方法,实现所有的public和private方法。

#include "student.h" /*1.声明private方法*/ static void XXX(Student *me, ...); /*2.构造和析构方法实现*/ void Student_Ctor(Student *me, String name, uint8_t code) { Person_Ctor((Person*)me, name);/*先调用父类构造函数*/ me->code__ = code; } void Person_Xtor(Person *me) { ... } /*3.public方法实现*/ void Student_setCode(Student *me, uint8_t code) { me->code__ = code; }

app.c中使用Student类:

#include "Student.h" /*包含头*/ void main() { String tmp; Student l_st1; /*创建一个实例,实际就是一个属性*/ Student l_st2; /*创建另一个实例,实际就是另一个属性*/ Student_Ctor(l_st1, "张三, 25); /*显式调用构造函数*/ Student_setCode(l_st1, 30); //使用其public方法 tmp = Student_getCode(l_st1); //使用其public方法 } 3.C语言的多态性

利用C语言的万能指针void *p可以实现多态。略。

4.总结

用C语言可以实现面向对象的三大特性,适合于嵌入式系统的编程,QP的C版本就是这样实现的。现在很多的开源软件,包括postgreSQL、GObject等都采用C语言实现面向对象的方法。采用这个方法,使程序具有更好的可读性、可扩展性,同时保持了C语言的高效性。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/350df57af9e1933ff1cacbf49f8e8496.html