それは私がそれを使わないと言う理由です。誰かがそれについて十分に知っていると、彼らはその規則を破るべき時を知っています。"が注文に追加されました。型ではありませんか?この領域は奇妙に見えます。源@Gerardもう1つの賢明な方法は、よりわかりやすい方法で変数に名前を付けることです。型を別名設定する必要なしに同じ情報を持ちます。源これはこれを実装するための非常に簡単な方法であり、読むのはとても簡単です。それは素晴らしいことです!しかし、もっと簡単な方法があることがあなたには起こったかもしれません。これを単純化することについてのいくつかの考えがあります。クラスを使うすべて同じプロパティを持つ項目がいくつかあることに注目してください。それらはすべて名前と値段があります。そのため、それらを1つのクラスにまとめることは意味があります。単純なクラスは次のようになります。フィールドを設定するだけです。関数は単に値を返します。name;}このクラスが完成したら、次のようにしてオブジェクトを作成できます。3.50);配列を使ういくつかのアイテムがあり、それらに対して同様の操作を行いたいので、それらを配列に入れることができます。同じ種類の複数のアイテムを保持します。次のようにして作成できます。};}配列内に項目があり、各項目に対して同じことをしたい場合は、ループ内でそれらを繰り返すことができます。他のオブジェクトを保持するため「コンテナ」の一種です。呼ばれるオブジェクトを提供します。container.begin()を呼び出して、コンテナ内の最初の項目を指すイテレータを取得し、次にそれを増分して次の項目を取得します。container.end()と等しくなるまで増分し続けることができます。これで、処理する必要がなくなったことがわかります。それでは、上記の在庫アイテムの配列を使って試してみましょう。ついて何かおかしなことに気づいたでしょうか。アイテムのコストを合計に追加しませんでした。私がしなかった理由は、私があなたがあなたのバージョンであなたがそれをどのようにしたか見て欲しいからです。更新するのではなく、印刷するだけであることに注意してください。割り当てる必要があります。"y"を選ぶと、ベーグルとドーナツの価格が表示されます。"y"選択の後にそれを更新するならば、それは常に正しい値を持つべきです、そしてあなたは手動で他のすべての選択を加える必要はありません。あなたは自分のバージョンを終了するのと同じようにそれを終了することができます。0;お立ち寄りいただきありがとうございます。源これはクラスの悪い例です。源もしあなたが保持しなければならないいくつかの不変量または内部状態を持っているならば、それは悪い習慣です。引っ張りました(本当に便利ではありません、TBH)。いずれにせよ、私はあなたの投稿に「このクラスは大きくなるかもしれないので、インターフェースをきれいに整頓しておくべきだ」と付け加えます。その最後の提案は私が目指していたものでした。私は本当にもっとコーヒーが必要です。私たちが現在見直しているものを訪問するべきです。するのは悪い習慣だと思います。デバッグしにくいコードを書くことをお勧めします。このような単純なクラスは将来さらに多くのフィールドを含むようになるでしょう。実際のクラスがどのように見えるかについての基本的な例になることを主に意図していました。それが何を含んでいるのかについて有用な情報を提供していないので、特に悪いクラスです。コードが判読できなくなるからです。同様に意味があり、ルックアップを実行するのがより速く、そしてより少ないコードがつかいます。それは今のところ十分すぎるほどです。多くの機能(アイテム固有の割引など)が必要な場合は、いつでもコードをリファクタリングできます。使用することをお勧めします。すれば、項目が将来変更されても、宣言を変更する必要はありません。項目があるという事実は、プログラムに固有のものではありません。異なる何かに集中するのは実際にはUBです(副作用のない無限ループです)。上記の回答に加えて財務計算で浮動小数点を使用したことがない浮動小数点加算は正確ではなく、丸め誤差が直感的ではない方法で伝播するため、これは良くありません。複雑な計算をすると、1セントを失うか1セント上がる可能性が非常に高いです。動作することに気付くでしょう。++は固定小数点をサポートしていないため、最も簡単な回避策は整数を使用し、すべての価格をセントで格納することです。Brems源@アンドレアス。いいえ、私は従来のバイナリ浮動小数点フォーマットを意味します。すべての入力が(漠然とさえ)同じ大きさの最小額面金額である限り、本当に問題はありません。0.01≠0.02ですが、多くの演算を連鎖する場合でも、ここでは関係ありません)しかしTobyにはどちらかの意味があります。私はこのアドバイスをよく耳にし、自分でそれを実行するのをやめていました。精度の欠如が1セント/セント/ドルにまで及ぶことはないため、銀行では内部的に通貨を表すために浮動小数点を使用していると聞いています。したがって、これは実際には問題ではないという(もっともらしい)主張があります。KonradRudolph:0.01はきちんと格納されていると思うでしょう。その1.01それは小さな丸め問題を持つでしょう。KonradRudolph:浮動小数点は難しいです。いいえ、私は気難しいです。財務計算に適したタイプに簡単に変更できます。」で終わると思います。IME、金融ソフトウェアの作成者は、正確な(固定小数点)算術(取引の価格の追加など)を使用する場合と浮動小数点を使用する場合(利子の計算時など)を知っています(または知っておくべきです)。(批判的に)それらの間で変換するとき。kopek/...をあなたの浮動小数点の単位として使うことができないということは何も言っていません、それでそれは全く二分法ではないようです。倍精度は、お金に対する特定の操作の精度を欠く可能性があります。ようなシンプルなカフェの場合これは(1と0からそれほど遠くない、そしてたまにVATを計算するために時には多少の差はありませんが)少しでも足ります。したがって、「財務計算に浮動小数点を使用しない」というのは、あまりにも説得力があり、時には単に間違っています。源@TobySpeight:おそらく固定小数点を使うことの最も重要な点は、それがプログラマに各操作の後に/丸めについて考えることを強いることです。これは金利計算や価格の追加などにも重要です。精度が中間結果の精度が高い場合、再現性を達成するのは困難です。KonradRudolph:これは基数10の浮動小数点です。私はそれがIEEE745規格の一部であり、それがどこで使われるのか疑問に思っていました。源すでにいくつかの素晴らしいアドバイスがありますが、私はそれがSTLを使ったことに気づきました。あなたはカフェの機能を取り入れるためにクラスを使うことによってあなたのプログラムを大いに単純化することができます。"spirit",1.00};この製品構造体はあなたが必要とするすべての情報を含んでいます。静的メンバーはオブジェクトではなくクラスのメンバーなので、グローバルまたは集約情報を格納するために使用できます。この場合、メソッドはパラメータを必要としません。スコープ内のdescとpriceの値を参照していると想定しているからです。この例では、すべてのサイズは静的です。これはスペース節約を目的としたプログラミングの最も効率的な方法ではありませんが、やり過ぎるとやり過ぎることになります。goodAnswer;}このようなことをすると、forループを使ってすべての選択肢を繰り返すことができます。質問のステータスが返されるので、入力が有効であることを確認するためにこのようなことをすることができます。}それが役立つことを願っています。