首页 > 解决方案 > 将结构发送到函数 C++

问题描述

我有一个程序要求一些礼物,然后你输入它的描述、价格和单位。

我有一个函数用于在它自己的 cpp 文件中显示详细信息:

    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 次。将不胜感激一些帮助

标签: c++functionstruct

解决方案


void display(const Gift&)接受对 aGift作为参数的引用,但如果没有参数的标识符(名称),则函数无法与参数交互。

而是在函数中使用void display(const Gift& gift),然后使用gift代替。gifts

未来的错误:

数组通常在 0 和数组的维度 -1 之间有效。在

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

i范围从 1 到numberOfGifts. 至少这忽略了第一个,第 0 个元素,gifts并且很可能会允许程序访问数组末尾的一个元素。跳过第一个值会浪费内存,但可能没问题。尝试访问数组外部的值是不好的,结果非常不可预测。


推荐阅读