用C语言写刚才那个题
时间: 2024-11-17 10:30:48 浏览: 12
在C语言中,我们可以使用结构体和函数来模拟多态的概念。虽然C语言本身并不像其他面向对象的语言那样有内置的多态机制,但你可以通过一些间接的方式来模拟。这里我们来构建一个简单的例子:
```c
#include <stdio.h>
// 定义一个基础动物类型
typedef struct {
char name[50];
} Animal;
// 动物的基本行为
void animal_sound(Animal* animal) {
printf("Generic sound from %s.\n", animal->name);
}
// 子类狗的行为
void dog_sound(Animal* dog) {
printf("%s is barking.\n", dog->name);
}
int main() {
// 创建基础动物
Animal generic_animal = {"Generic"};
animal_sound(&generic_animal); // 输出 "Generic sound from Generic."
// 创建子类狗
Animal dog = {"Dog"};
dog_sound(&dog); // 输出 "Dog is barking."
return 0;
}
```
在这个示例中,`animal_sound`函数可以接受任意类型的`Animal`指针,这模拟了多态中的"接口"概念。当你传入`dog_sound`给这个函数时,因为它是`Animal`类型的,所以会调用子类的方法,实现了"动态绑定"。
阅读全文