用 C++ 语言编程一个完整代码首先,创建一个基类 Book,包含书的基本信息,如书名、作者、出版社等。这个类可以包含构造函数、析构函数、复制构造函数等成员函数。为了实现多态输出,可以在这个类中编写一个虚函数 print(),用于输出图书的信息。 然后,可以创建一个派生类 EBook,继承自 Book 类,并增加一些新的成员变量,如电子书的文件格式等。这个类中也可以包含构造函数、析构函数等成员函数。
时间: 2023-02-13 16:32:21 浏览: 74
下面是 C 语言的代码示例:
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_NAME_LEN 128
typedef struct Book {
char name[MAX_NAME_LEN];
char author[MAX_NAME_LEN];
char publisher[MAX_NAME_LEN];
// 构造函数
Book(const char* name, const char* author, const char* publisher) {
strncpy(this->name, name, MAX_NAME_LEN);
strncpy(this->author, author, MAX_NAME_LEN);
strncpy(this->publisher, publisher, MAX_NAME_LEN);
}
// 析构函数
~Book() {
// 清理内存
}
// 复制构造函数
Book(const Book& other) {
strncpy(name, other.name, MAX_NAME_LEN);
strncpy(author, other.author, MAX_NAME_LEN);
strncpy(publisher, other.publisher, MAX_NAME_LEN);
}
// 虚函数,用于输出图书的信息
virtual void print() {
printf("Book: name = %s, author = %s, publisher = %s\n", name, author, publisher);
}
} Book;
typedef struct EBook {
char format[16];
// 派生类的构造函数
EBook(const char* name, const char* author, const char* publisher, const char* format) : Book(name, author, publisher) {
strncpy(this->format, format, 16);
}
// 派生类的析构函数
~EBook() {
// 清理内存
}
// 虚函数,用于输出图书的信息
void print() {
printf("EBook: name = %s, author = %s, publisher = %s, format = %s\n", name, author, publisher, format);
}
} EBook;
int main() {
Book book("Book1", "Author1", "Publisher1");
book.print();
EBook ebook("EBook1", "Author1", "Publisher1", "PDF");
ebook.print();
return 0;
}
```
在这个代码中,我们创建了一个基类 `Book` 和一个派生类 `EBook`。基类 `Book` 包含了书的基本信息