用C语言定义一个Document类,有数据成员name,从Document派生出Book类,增加数据成员pageCount
时间: 2024-11-20 07:40:20 浏览: 11
php实现mysql数据库操作类分享
在C语言中,虽然它主要用于系统编程而非面向对象编程,我们无法直接像Java那样创建类和继承。然而,我们可以模拟这种概念,通过结构体和函数来实现类似的功能。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个通用文档类,包含name数据成员
typedef struct Document {
char* name;
} Document;
// 定义书这个子类,继承自Document并增加pageCount数据成员
typedef struct Book {
Document base; // 派生的基类部分
int pageCount;
} Book;
// 创建Book实例并初始化
void createBook(Book* book, const char* name, int pages) {
book->base.name = malloc(strlen(name) + 1); // 分配内存存储name
strcpy(book->base.name, name);
book->pageCount = pages;
}
// 打印文档信息
void printDocument(Document* doc) {
printf("Name: %s\n", doc->name);
}
int main() {
// 创建一个Book对象
Book myBook;
createBook(&myBook, "Python Programming", 300);
// 输出Book的信息
printDocument(&myBook.base); // 使用基类指针访问
return 0;
}
```
阅读全文