gpt4 book ai didi

c++ - 创建指向其他对象的列表指针

转载 作者:行者123 更新时间:2023-11-30 04:11:34 26 4
gpt4 key购买 nike

list<Book*> books;
list<Book>::iterator pos, last;

Book Administrator::addBook()
{
Book *newBook = new Book();
cout << "Would you like to enter a book?" << endl;
cin >> userInput;
cout << endl;

if (userInput == "yes")
{

cout << "What is the title of the book you want to enter?" << endl;
cin >> title;

cout << "What is the author of the book you want to enter?" << endl;
cin >> author;

cout << "What is the ISBN of the book you want to enter?" << endl;
cin >> ISBN;

cout << endl;

newBook->setTitle(title);
newBook->setAuthor(author);
newBook->setISBN(ISBN);
newBook->setAvailability(true);

books.push_back(newBook);

}
return *newBook;
}

void Administrator::printBookDetails()
{

books.begin()->setPrevBook(NULL);
for (pos = books.begin(); pos != books.end(); ++pos)
{
cout << pos->getTitle() << "\n"
<< pos->getAuthor() << "\n"
<< pos->getISBN() << "\n"
<< pos->getAvailability() << "\n"
<< "******************************" << endl;

if (pos != books.begin())
{
last->setNextBook(&*pos);
pos->setPrevBook(&*last);
}
last = pos;
}
books.back().setNextBook(NULL);

}

谁能帮我完成这个项目,这是我的两个功能addBookprintbookDetails .这些在我的管理类中。

我希望我在堆上创建的书籍存储在 list< book*> books 中因为我想在另一个类中引用它们。

到目前为止,我在指针方面得到了一些帮助,我知道这与我没有将指针链接到正确的对象有关。

我的 printBookDetails给我带来麻烦,第一行 books.begin()->setPrevBook(NULL);是说我需要一个指向类的指针类型但是当我把 ->我仍然有错误。


Book Guest::searchBook(Book* search)
{

string searchBook;
cout << "What book would you like to search for?" << endl;
cin >> searchBook;

printBookDetails();


}

我喜欢做的是使用 searchBook在我的 Guest 类中使用上面的功能,以便稍后引用列表中的书籍,但当我似乎无法正确理解我的指示时。

有人可以让我走上正轨吗。

最佳答案

for (pos = books.begin(); pos != books.end(); ++pos)

这里,pos 是一个迭代器,在你的列表上。迭代器就像指向列表条目的指针。但是您的每个列表条目也是指向一本书的指针,而不是一本书本身。因此,在尝试访问这些元素的成员函数时,您需要像这样的代码:(*pos)->getTitle()

关于c++ - 创建指向其他对象的列表指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20182357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com