1. ホーム
  2. c++

[解決済み] コンストコレクトネスを売り込む

2022-05-02 09:19:08

質問

では、なぜ const を頻繁に使うことが推奨されるのでしょうか? C++ではconstの使用は役に立つというより、むしろ苦痛になるような気がするのですが。 しかし、私はpythonの観点から、何かを変更されたくなければ、それを変更しないでください、と言っています。 ということで、いくつか質問させてください。

  1. 何かをconstにするたびにエラーが発生し、どこかの他の関数もconstに変更しなければならないような気がします。 そして、そのために 別の 関数があります。 これは、経験を積めば簡単になることなのでしょうか?

  2. constを使用するメリットはありますか? 本当に その面倒さを補うほどか? オブジェクトを変更するつもりがないのなら、変更しないコードを書かないようにすればいいのでは?

現時点では、パフォーマンスへの影響も考慮した上で、正確性と保守性の観点からconstを使用することの利点に最も注目していることを記しておきます。

どのように解決するのか?

これは、quot;const correctness"に関する決定的な記事です。 https://isocpp.org/wiki/faq/const-correctness .

一言で言えば、constを使うのは良い習慣です。

  1. 意図していない変数を誤って変更することを防げる。
  2. 偶発的な変数の代入から保護します。
  3. コンパイラが最適化できる。 例えば、次のようなことから保護されます。

    if( x = y ) // whoops, meant if( x == y )
    
    

同時に、コンパイラは変数/関数の状態を常に正確に把握できるため、より効率的なコードを生成することができます。 タイトなC++のコードを書くなら、これは良いことです。

コンストラスト・コレクトネスを一貫して使用するのが難しいというのはその通りですが、最終的なコードはより簡潔で、より安全にプログラミングできるようになります。 C++の開発をたくさんしていると、このメリットはすぐに現れます。