使用struct实现面向对象编程的封装

虽然C是面向过程的语言,但是这不代表C不能使用面向对象的思想,本质上说语言只是一种手段而已,一种外在的表现形式,支持面向对象的语言只是通过设计的特定的关键字更好的表现了面向对象编程而已.C中也可以使用面向对象的思想,通过struct结构体和函数指针来实现.

struct表示java或C#中的类Class,struct中的字段表示类中的属性,函数指针表示类中的方法.简单的实现代码如下:

#include <stdio.h>/* 定义一个结构体,这个结构体相当于类name,age字段相当于属性函数指针sayhello,代表这个”类”的方法*/typedef struct person {char *name;int age;int (*sayhello)(const struct person *p);}Person;_sayhello(const struct person *p){printf(, p->name, p->age);return 0;}int main(void){//声明一个实例并给其赋值,下面的赋值方法在GNU的gcc中是支持的Person p = {//字段赋值.name = ,.age = 22,//函数指针实现.sayhello = _sayhello,};//调用”类”的方法p.sayhello(&p);return 0;},穿过紫堇,穿过木棉,穿过时影时现的悲喜和无常。

使用struct实现面向对象编程的封装

相关文章:

你感兴趣的文章:

标签云: