用c++语言编程一个完整代码首先,创建一个基类 Book,包含书的基本信息,如书名、作者、出版社等。这个类可以包含构造函数、析构函数、复制构造函数等成员函数。为了实现多态输出,可以在这个类中编写一个虚函数 print(),用于输出图书的信息。 然后,可以创建一个派生类 EBook,继承自 Book 类,并增加一些新的成员变量,如电子书的文件格式等。这个类中也可以包含构造函数、析构函数等成员函数。 在主函数中,可以创建一个指向 Book 类的指针数组,然后动态地创建 Book 类的对象和 EBook 类的对象,将这些对象存储到指针数组中。然后,可以通过循环来调用每个对象的 print() 函数,实现多态输出。
时间: 2023-02-13 20:18:57 浏览: 138
下面是一个示例代码:
```
#include <iostream>
#include <string>
using namespace std;
class Book {
public:
Book(string name, string author, string publisher)
: name_(name), author_(author), publisher_(publisher) {}
virtual ~Book() {}
Book(const Book& other)
: name_(other.name_), author_(other.author_), publisher_(other.publisher_) {}
virtual void print() const {
cout << "书名: " << name_ << endl;
cout << "作者: " << author_ << endl;
cout << "出版社: " << publisher_ << endl;
}
private:
string name_;
string author_;
string publisher_;
};
class EBook : public Book {
public:
EBook(string name, string author, string publisher, string format)
: Book(name, author, publisher), format_(format) {}
virtual ~EBook() {}
EBook(const EBook& other)
: Book(other), format_(other.format_) {}
virtual void print() const {
Book::print();
cout << "文件格式: " << format_ << endl;
}
private:
string format_;
};
int main() {
Book* books[2];
books[0] = new Book("C++ 程序设计", "张三", "机械工业出版社");
books[1] = new EBook("Java 编程思想", "李四", "电子工业出版社", "PDF");
for (int i = 0; i < 2; i++) {
books[i]->print();
}
delete books[0];
delete books[1];
return 0;
}
```
在这个程序中,我们定义了一个基类 `Book`,和一个派生类 `EBook`,并在基类中定义了一个虚函数 `print()`。然后在主函数中创建了一个指向 `Book` 类的指针数组,并动态创建了一个 `Book` 类的对象和一个 `EBook` 类的对象。最后,我们通过循环调用每个对象的 `print()` 函数来实现多态输出。
阅读全文