Я должен определить две функции, связанные с классами - PullRequest
0 голосов
/ 27 апреля 2020

1. У меня есть задание с составом классов, где я должен вернуть отели, которые имеют более 10 номеров по заданному адресу (в качестве аргумента). Я сделал это, но я не уверен, правильно ли это:

int findHotel([], string add)
{
    for (int i = 0; i < 10; i++)
    {
        if (hotels[i].getName() == na)
            hotels[i].print();
    }
}

2.Функция, которая возвращает отели, в которых есть как минимум 10 номеров с Wi-Fi.

1 Ответ

0 голосов
/ 27 апреля 2020

С вышесказанным довольно много неправильного.

Во-первых,

int findHotel([], string add)

[], как это недопустимый синтаксис. Полагаю, вы имели в виду

int findHotel(Hotel hotels[], string add)

, где Hotel - это название класса вашего отеля (извините, я думаю, но вы не сказали, что это такое).

Во-вторых

if (hotels[i].getName() == na)

na не объявлено, я не уверен, что вы имели в виду под этим. В любом случае ваши требования - это отелей, которые имеют более 10 номеров по указанному адресу . Это не имеет ничего общего с названиями отелей. Вам нужно что-то совершенно другое в вашем if утверждении. Что-то вроде

if (hotels[i].getAddress() == add && hotels[i].getNumberOfRooms() > 10)

Опять же, я предполагаю, потому что вы не опубликовали определение класса вашего отеля, но что-то в этом роде.

Наконец

hotels[i].print();

печать отеля не так же, как возвращение отеля. Для новичков характерно путаться. Возврат означает, что функция должна возвращать данные вызывающей функции, а не распечатывать их. Таким образом, ваша функция должна быть изменена на вернуть , не печатать, все отели, которые имеют определенный адрес и более 10 номеров. Есть много разных способов сделать это, но этот ответ уже достаточно длинный, поэтому посмотрите на свою книгу по C ++, где объясняется, как возвращать значения из функций.

Самый простой способ - поместить отели в вектор и верни это.

...