用C++语言直接编写代码不要复述文字,在主函数中,可以创建一个指向 Book 类的指针数组,然后动态地创建 Book 类的对象和 EBook 类的对象,将这些对象存储到指针数组中。然后,可以通过循环来调用每个对象的 print() 函数,实现多态输出。
时间: 2023-02-07 13:37:14 浏览: 249
好的,这是一个示例代码:
```
#include <iostream>
#include <string>
class Book {
public:
Book(std::string title) : title_(title) {}
virtual void print() {
std::cout << "Book: " << title_ << std::endl;
}
private:
std::string title_;
};
class EBook : public Book {
public:
EBook(std::string title, std::string file_name) :
Book(title), file_name_(file_name) {}
void print() {
std::cout << "EBook: " << title_ << " (" << file_name_ << ")" << std::endl;
}
private:
std::string file_name_;
};
int main() {
Book* books[2];
// 动态创建对象并存储到数组中
books[0] = new Book("C++ Primer Plus");
books[1] = new EBook("Effective C++", "ecpp.pdf");
// 调用 print() 函数,实现多态输出
for (int i = 0; i < 2; i++) {
books[i]->print();
}
return 0;
}
```
阅读全文