私はC++を全く新しくしており、与えられたリットルパズルを解決するプログラムを書くことをお勧めします(3リットルと5リットルの容量を持つ2つの容器があります4リットルを取得するなど)関数はC++のオブジェクト属性を変更しません
私は、特定の容器のクラスと、ある容器の内容を別の容器に「流し込む」機能を書いています。ただし、クラス全体が公開されているにもかかわらず、このオブジェクトの内容の値は変更されません。私は何が間違っているのか分かりません。
#include <iostream>
using namespace std;
class Container {
public:
int quantity; //quantity of water in container
int size; //max amt of water
};
void pour(Container a, Container b) {
int differential = b.size - b.quantity;
if (a.quantity <= differential) {
b.quantity = a.quantity + b.quantity;
a.quantity = 0;
}
else if (a.quantity > differential) {
b.quantity = b.quantity - differential;
a.quantity = a.quantity - differential;
}
};
int main() {
Container bottle1;
bottle1.quantity = 5;
bottle1.size = 6;
Container bottle2;
bottle2.quantity = 0;
bottle2.size = 2;
pour(bottle2, bottle1);
cout << bottle1.quantity << ", " << bottle2.quantity << endl;
return 0;
}
私は私のミスが明らかであると確信しているが、私はどこにも答えを見つけることができません。
は、ここに私のコードです。どんな助けでも大歓迎です。
引数を値ではなく参照で使用します。 'void pour(Container&a、Container&b)' – Jarod42