отправка структуры в функцию C ++ - PullRequest
0 голосов
/ 30 января 2020

У меня есть программа, которая запрашивает количество подарков, а затем вам нужно ввести описание, цену и единицы для нее.

У меня есть функция, используемая для отображения деталей здесь внутри своей собственной cpp file:

    void display(const Gift&) {

        cout << "Gift Details:" << endl;
        cout << "Description: " << gifts.g_description << endl;
        cout << "Price: " << gifts.g_price << endl;
        cout << "Units: " << gifts.g_units << endl;
    }

и вот где я пытаюсь вызвать его через другой cpp файл:

    for (int i = 1; i <= numberOfGifts; i++) {
        cout << "Gift #" << i << endl;
        display(gifts[i]);
        cout << endl;
    }

Я не могу понять, как это отобразить первое, второе, третье и четвертое значения? четвертые значения отображаются только 4 раза. был бы очень признателен за помощь

1 Ответ

2 голосов
/ 30 января 2020

void display(const Gift&) принимает ссылку на Gift в качестве параметра, но без идентификатора (имени) для параметра функция не может взаимодействовать с параметром.

Вместо этого используйте void display(const Gift& gift), а затем используйте gift вместо gifts в функции.

Будущая ошибка:

Обычно массивы допустимы в диапазоне от 0 до размерность массива -1. В

for (int i = 1; i <= numberOfGifts; i++)

i колеблется от 1 до numberOfGifts. По крайней мере, это игнорирует первый, 0-й, элемент gifts и, вполне возможно, позволит программе получить доступ к одному за концом массива. Пропуск первого значения - пустая трата памяти, но, возможно, все в порядке. Попытка получить доступ к значению за пределами массива - это плохо, а результаты очень непредсказуемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...