最近、初期化されていない変数で多くの問題が発生しました。
Java では、変数のデフォルト値は null であるため、初期化されていない変数を使用すると例外がスローされる可能性があります。私が理解していれば、C++ では、メモリ内にあることが判明したデータで変数が初期化されます。これは、プログラムが実行される可能性が高く、何か問題があることを知ることさえ難しいことを意味します.
これに対処するためのクリーンな方法は何でしょうか? リスクを軽減する良いプログラミング習慣はありますか? 私の場合、変数はヘッダー ファイルで宣言されており、cpp ファイルで初期化する必要がありました。これは、エラーが発生しやすくなる例です。
どうも
いくつかの回答を受け取った後の版:
申し訳ありませんが、私の質問は十分に具体的ではありませんでした。
コンパイラが初期化されていない変数について通知を受けるためにフラグを使用するという答えは役に立ちます。
ただし、システムの動作によっては、最初に変数を初期化できない場合がまれにあります。
ヘッダーファイルで
double learnedValue;
cppファイルで
/* code that has nothing to do with learnedValue
...
*/
learnedValue = a*b*c; // values of a, b and c computed in the code above
/*code making use of learned value
...
*/
何が起こったのかというと、「learnedValue=a*b*c」という行を忘れていました。
しかし、宣言されたときにメモリにあったもので初期化されたlearnedValueの値だけで、プログラムはうまく機能していました。
Java では、学習した値を使用するコードがクラッシュしたり、例外をスローしたりする可能性が高いため、このようなエラーは問題になりません (少なくとも、何が間違っていたかがわかります)。
C++ では、明らかに幸せで、問題があることにまったく気付かないことがあります。または ?