以下是使用 C 语言实现的代码:
``` #include <stdio.h> #include <stdlib.h> #include <string.h>
#define MAX_BOOKS 10 // 最多存储的图书数量
// 定义基类 Book typedef struct Book { char name[50]; // 书名 char author[50]; // 作者 char publisher[50]; // 出版社 void (print)(struct Book); // 多态输出函数 } Book;
// 定义派生类 EBook typedef struct EBook { Book book; // 继承自 Book 类 char format[20]; // 电子书文件格式 } EBook;
// 实现基类 Book 的多态输出函数 void Book_print(Book *book) { printf("图书信息:\n"); printf(" 书名:%s\n", book->name); printf(" 作者:%s\n", book->author); printf(" 出版社:%s\n", book->publisher); }
// 实现派生类 EBook 的多态输出函数 void EBook_print(Book *book) { EBook ebook = (EBook)book; // 强制类型转换 printf("图书信息:\n"); printf(" 书名:%s\n", ebook-&g