c语言面向对象编程的例子有吗
时间: 2024-05-07 13:17:00 浏览: 12
当然有,C语言也可以实现面向对象编程。一个常见的例子是使用结构体和函数指针实现对象和方法的概念。比如下面这个例子:
```
#include <stdio.h>
#include <stdlib.h>
// 结构体定义
typedef struct {
int (*get)(void* self);
void (*set)(void* self, int value);
int value;
} Counter;
// Counter 的方法实现
int getCounterValue(void* self) {
Counter* counter = (Counter*)self;
return counter->value;
}
void setCounterValue(void* self, int value) {
Counter* counter = (Counter*)self;
counter->value = value;
}
// 创建 Counter 对象的函数
Counter* newCounter() {
Counter* counter = (Counter*)malloc(sizeof(Counter));
counter->get = getCounterValue;
counter->set = setCounterValue;
counter->value = 0;
return counter;
}
int main() {
Counter* counter = newCounter();
counter->set(counter, 42);
printf("%d\n", counter->get(counter));
free(counter);
return 0;
}
```
这个例子中,我们定义了一个 Counter 结构体,其中包含了一个 get 方法和一个 set 方法,还有一个 value 属性。使用 newCounter 函数可以创建一个 Counter 对象。在 main 函数中,我们调用了 set 方法设置了对象的值,并通过 get 方法获取了对象的值。