- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
4天前关闭。
Improve this question
#include <iostream>
using namespace std;
struct ShoeType
{
char style;
double price;
};
void readShoeRecord(ShoeType& newShoe){
cout << "Enter the shoe style: ";
cin >> newShoe.style;
cout << "Enter the shoe price: ";
cin >> newShoe.price;
}
ShoeType discount(ShoeType oldRecord){
ShoeType newRecord =oldRecord;
newRecord.price= newRecord.price*0.9;
return newRecord;
}
int main(){
ShoeType shoe1;
readShoeRecord(shoe1);
cout << shoe1.style << " $" << shoe1.price << endl;
discount(shoe1); //NEED HELP HERE
cout << "Your new discount is:";
cout << shoe1.price;
return 0;
}
我试着通过引用传递它,看看它是否会改变,但什么也没发生。
我不能把cout << newRecord.price;
放在main()
中,因为它没有保存在main()
中,而且重新请求也没有意义,因为我被告知返回。
我可以将旧价格的值全部保存在main()
中,但它没有用,因为我想学习如何以正确的方式在函数中传递值。
请告诉我应该复习哪些概念,以便我完全理解这个概念。
1条答案
按热度按时间pqwbnv8z1#
你需要把
discount()
的返回值赋给一个变量,并在生成输出时使用它,如果你想覆盖它,你也可以把结果赋给shoe1。和示例会话:
如果折扣仅取决于价格,则最好仅传入价格并返回价格,而不是整个ShoeType对象。
考虑将
discount()
设为struct ShoeType
的常量成员函数。