最近、自分のプログラミング スタイルとそれを改善する方法をよく調べています。まず、私の現在の役割では、私は唯一のプログラマーです。その結果、好きなだけハックなものを作ることができますが、より優れた、より健全なプログラマーになるために本当に努力しています。
また、私のバックグラウンドは主に C ベースで、必要に応じて基本的に C++ を C のスーパーセットとして使用していました。その結果、次の難問に出くわしました。
私はいつも #define ERROR_FUNCTION_BLEW_UP -2 のようなものでエラー コードを定義してきました。正直なところ、-2 を格納するためにメモリを割り当てる必要がないため、そうすることの利点がわかります。ただし、C++ では、競合する 2 つのマクロ間の衝突の可能性が少ないため、const 変数を使用する利点がわかりました。
その結果、C++ でエラー コードを実装する最もクリーンな方法は何だろうと考えていました。つまり、「if (return_value == ERROR_FUNCTION_BLEW_UP)」に類似したことを行うことで、クライアントが特定の関数の戻り値を確認できるようにしたいと考えています。各クラスに const 変数を追加しようとしましたが、コードが正しく表示されません。つまり、クライアントは「if (return_value == MyClass.kErrorFunctionBlewUp_)」の行に沿って何かをチェックするようになりました。定数をクラスのパブリックメンバーにするのではなく、これを達成するためのよりクリーンな方法はありますか?
また、私の質問に追加すると、myClass は基本クラスであり、MyDerivedClass にエラー コードを追加したいと考えています。これに対処し、マクロを回避する最善の方法は何ですか?
ご協力ありがとうございました。