Book **books;
- указатель на указатель на книгу. Это старый способ иметь список книг (в виде указателей) или список книг.
Library() {
books = NULL;
counter = 0;
}
Это создаст пустую библиотеку. Нет книг.
void Add(INPUT &tmp) {
books = new Book*[counter];
++counter;
}
Первое, на что нужно обратить внимание, это то, что вы не пользуетесь книгой tmp
. Так что вам, вероятно, не удастся хранить его где-либо, не используя его.
Во-вторых, books = new Book*[counter];
выделяет библиотеку книг. Место для хранения некоторых книг. Вы, вероятно, должны сделать это в конструкторе. Если вы сделаете это там, каждый раз, когда вы пытаетесь добавить книгу, вы потеряете все остальные, и вы также потеряете память.
Здесь есть две возможности. У вас есть старомодный профессор C ++, и вам нужно будет узнать об указателях и указателях на указатели, а также о новых, удалить. Или вы можете узнать о std :: vectors и smart-указателях. Это была бы лучшая идея, но я не могу сказать вам, насколько хорошо она будет принята в вашем классе.
Также, пожалуйста, укажите, как определяется ВХОД.