Book.cpp:1:10: fatal error: Set: No existe el fichero o el directorio
[closed]
I trying compile an example of a book.
The program use three classes: Book, Customer and Library.
*Book.cpp*
#include <set>#include <map>#include <string>#include <map>#include
<fstream>#include <algorithm>using namespace std;
#include "book.h"
#include "customer.h"
#include "library.h"
// default constructor
Book::Book(){
// Empty
}
Book::Book(const string& author, const string& title)
:m_author(author),
m_title(title){
// empty
}
// methods
// They only read and write the author and title of the book
void Book::read(ifstream& inStream){
getline(inStream,m_author);
getline(inStream,m_title);
}
void Book::write(ofstream& outStream) const{
outStream << m_author << endl;
outStream << m_title << endl;
}
/* When a customer reserves a book, the pointer to the customer
* Object is added to the reservation pointer list of the book */
int Book::reserveBook(Customer* borrowerPtr){
m_reservationPtrList.push_back(borrowerPtr);
return m_reservationPtrList.size();
}
/* When a customer returns a book, we simply set m_borrowerPtr to nullptr*/
void Book::returnBook(){
m_borrowerPtr = nullptr;
}
/* the removeReservation method simply removes the customer
* pointer from the reservation list*/
void Book::removeReservation(Customer* customerPtr){
m_reservationPtrList.remove(customerPtr);
}
/* the output stream operator writes the title and author, the
customer that has borrowed the book, and the customers that have
reserved the book */
ostream& operator << (ostream& outStream, const Book& book){
outStream << """ << book.m_title << "" by " << book.m_author;
if(book.m_borrowed){
outStream << endl << " Borrowed by: "
<< Library::s_customerMap[book.m_customerId].name()
<< ".";
}
if(!book.m_reservationList.empty()){
outStream << endl << " Reserved by: ";
bool first = true;
for(int customerId : book.m_reservationList){
outStream << (first ? "" : ",")
<< Library::s_customerMap[customerId].name();
first = false;
}
outStream << ".";
}
return outStream;
}
*book.h*
class Customer;
class Book {
public:
Book();
Book(const string& author,const string& title);
const string& author() const{return m_author;}
const string& title() const{return m_title;}
void read(ifstream& inStream);
void write(ofstream& outStream) const;
int reserveBook(Customer* customerPtr);
void removeReservation(Customer* customerPtr);
void returnBook();
/*borrowedPtr method returns the address of the customer who
has borrowed the book*/
Customer*& borrowerPtr() {return m_borrowerPtr;}
const Customer* borrowerPtr() const {return m_borrowerPtr;}
/* reservationPtrList returns a list of customer pointers
instead of integer values*/
list<Customer*>& reservationPtrList(){
return m_reservationPtrList;
}
const list<Customer*> reservationPtrList() const{
return m_reservationPtrList;
}
friend ostream& operator<<(ostream& outStream, const Book& book);
private:
string m_author, m_title;
Customer* m_borrowerPtr = nullptr;
/* holds a list of pointers to the customers that have
reserved the book*/
list <Customer*> m_reservationPtrList;
}
When i compile the example with the following command:
g++ -g -Wall Book.cpp book.h -o book
The result expected is bad.
Book.cpp:1:10: fatal error: Set: No existe el fichero o el directorio
#include <Set>
^~~~~
compilation terminated.
This example was tested from another compiler. The library is not
recognized.
*The book is C++17 By Example, published by Packt.*
--
With kindest regards, William.
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀⠀⠀⠀