实现一个图书馆与书之间组合关系的成员函数c++
时间: 2024-12-15 17:15:48 浏览: 4
在 C++ 中,实现一个图书馆与书籍之间的组合关系,通常会涉及到类的设计和关联。你可以创建两个类,比如`Library` 和 `Book`,其中`Library` 类包含一个动态数组或者容器来存储`Book` 对象的引用。
以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector> // 使用 vector 存储书籍
class Book {
public:
std::string title;
std::string author;
// 构造函数和析构函数
Book(const std::string& t, const std::string& a) : title(t), author(a) {}
~Book() {}
// 其他可能的方法,如借阅、归还等
};
class Library {
private:
std::vector<Book*> books; // 存储书籍的动态数组
public:
// 添加书籍到图书馆
void addBook(Book* book) {
books.push_back(book);
std::cout << "Added book: " << book->title << " by " << book->author << "\n";
}
// 删除书籍(这里仅做简单示例,实际应用中应处理删除后的内存管理)
void removeBook(const std::string& title) {
for (auto it = books.begin(); it != books.end(); ++it) {
if ((*it)->title == title) {
books.erase(it);
break;
}
}
}
// 显示图书馆内的所有书籍
void displayBooks() {
std::cout << "Books in the library:\n";
for (const auto& book : books) {
std::cout << book->title << " by " << book->author << "\n";
}
}
// ...其他图书馆相关的操作
};
int main() {
Book myBook("The Great Gatsby", "F. Scott Fitzgerald");
Library lib;
lib.addBook(&myBook);
// 展示如何组合使用
lib.displayBooks();
return 0;
}
```
在这个例子中,`Library` 类包含了添加、移除和显示书籍的方法,而`Book` 类则表示单本图书的信息。通过将`Book` 的指针存放在`Library` 的`books` 列表中,实现了图书馆与书籍之间的组合关系。
阅读全文