帮我用C++创建书籍类、图书类型类、图书类,需要有基类和继承关系
时间: 2024-01-29 10:03:35 浏览: 63
用c++定义一个Book(图书)类
5星 · 资源好评率100%
好的,以下是代码示例:
```
// 基类-书籍类
class Book {
public:
Book(string title, string author, int year)
: m_title(title), m_author(author), m_year(year) {}
virtual ~Book() {}
virtual void print() const = 0; // 纯虚函数,输出书籍信息
protected:
string m_title; // 书籍名称
string m_author; // 作者
int m_year; // 出版年份
};
// 派生类-图书类型类
class BookType : public Book {
public:
BookType(string title, string author, int year, string type)
: Book(title, author, year), m_type(type) {}
virtual ~BookType() {}
virtual void print() const {
cout << "书籍名称:" << m_title << endl;
cout << "作者:" << m_author << endl;
cout << "出版年份:" << m_year << endl;
cout << "图书类型:" << m_type << endl;
}
private:
string m_type; // 图书类型
};
// 派生类-图书类
class BookInfo : public BookType {
public:
BookInfo(string title, string author, int year, string type, string isbn, string publisher)
: BookType(title, author, year, type), m_isbn(isbn), m_publisher(publisher) {}
virtual ~BookInfo() {}
virtual void print() const {
cout << "书籍名称:" << m_title << endl;
cout << "作者:" << m_author << endl;
cout << "出版年份:" << m_year << endl;
cout << "图书类型:" << m_type << endl;
cout << "ISBN:" << m_isbn << endl;
cout << "出版社:" << m_publisher << endl;
}
private:
string m_isbn; // ISBN编码
string m_publisher; // 出版社
};
```
在上面的代码中,Book是一个基类,BookType和BookInfo是继承自Book的派生类。Book类中定义了一个纯虚函数print(),表示输出书籍信息。BookType和BookInfo类分别在print()函数中输出了不同的信息。这样就达到了使用继承关系创建不同类型的书籍类的目的。
阅读全文