运用C++知识编写程序。首先,创建一个基类 Book,包含书的基本信息,如书名、作者、出版社等。这个类可以包含构造函数、析构函数、复制构造函数等成员函数。为了实现多态输出,可以在这个类中编写一个虚函数 print(),用于输出图书的信息。 然后,可以创建一个派生类 EBook,继承自 Book 类,并增加一些新的成员变量,如电子书的文件格式等。这个类中也可以包含构造函数、析构函数等成员函数。 在主函数中,可以创建一个指向 Book 类的指针数组,然后动态地创建 Book 类的对象和 EBook 类的对象,将这些对象存储到指针数组中。然后,可以通过循环来调用每个对象的 print() 函数,实现多态输出。 另外,可以编写一个静态函数 menu(),用于输出操作菜单,让用户选择要进行的操作,例如添加图书、删除图书等。
时间: 2023-02-09 13:41:51 浏览: 85
下面是一个参考的 C++ 程序:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 定义基类 Book
class Book {
public:
// 构造函数
Book(string name, string author, string publisher)
: name_(name), author_(author), publisher_(publisher) {}
// 析构函数
~Book() {}
// 复制构造函数
Book(const Book &other)
: name_(other.name_), author_(other.author_), publisher_(other.publisher_) {}
// 虚函数 print()
virtual void print() {
cout << "图书名称:" << name_ << endl;
cout << "作者:" << author_ << endl;
cout << "出版社:" << publisher_ << endl;
}
private:
string name_; // 书名
string author_; // 作者
string publisher_; // 出版社
};
// 定义派生类 EBook,继承自 Book 类
class EBook : public Book {
public:
// 构造函数
EBook(string name, string author, string publisher, string format)
: Book(name, author, publisher), format_(format) {}
// 析构函数
~EBook() {}
// 复制构造函数
EBook(const EBook &other) : Book(other), format_(other.format_) {}
// 覆盖基类的虚函数 print()
void print() {
Book::print();
cout << "文件格式:" << format_ << endl;
}
private:
string format_; // 电子书文件格式
};
// 定义静态函数 menu(),输出操作菜单
static void menu() {
cout << "========= 图书管理系统 =========" << endl;
cout << "1. 添加图书" << endl;
cout << "2. 删除图书" << endl;
cout << "3. 查看所有图书" << endl;
cout << "4. 退出" << endl;
cout << "请输入要进行的操作:";
}
int main() {
// 创建指向 Book 类的指针
阅读全文