用c++写一个同时包含继承和多态的代码
时间: 2023-05-13 13:05:12 浏览: 106
以下是一个同时包含继承和多态的 C 代码示例:
#include <stdio.h>
// 定义一个基类 Animal
typedef struct {
const char* name;
int age;
void (*speak)(void);
} Animal;
// 定义一个子类 Dog,继承自 Animal
typedef struct {
Animal base;
const char* breed;
} Dog;
// 定义一个子类 Cat,继承自 Animal
typedef struct {
Animal base;
const char* color;
} Cat;
// 实现 Animal 的 speak 方法
void animal_speak(void) {
printf("I am an animal.\n");
}
// 实现 Dog 的 speak 方法
void dog_speak(void) {
printf("I am a dog.\n");
}
// 实现 Cat 的 speak 方法
void cat_speak(void) {
printf("I am a cat.\n");
}
int main() {
// 创建一个 Animal 对象
Animal animal = {"Animal", 3, animal_speak};
animal.speak();
// 创建一个 Dog 对象
Dog dog = {{ "Dog", 2, dog_speak }, "Golden Retriever"};
dog.base.speak();
// 创建一个 Cat 对象
Cat cat = {{ "Cat", 1, cat_speak }, "Black"};
cat.base.speak();
return 0;
}