1. ホーム
  2. c++

[解決済み] ブール変数はデフォルトで常に偽ではないのですか?

2022-02-10 13:45:25

質問

私はブール変数を宣言しました bool abc; で、デフォルトで false になると思っていました。というのは もし という条件を、私のプログラムの中に入れています。 if (abc) が真になったので、abcの値を出力してみると、55という値が入っていました。これは正常なのでしょうか?

常に'bool abc=false'を代入しないとfalseであることを確認できないのでしょうか?

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

はい、変数は常に初期化する必要があります。 明示的に初期化する必要があるときとないときを熟知するまでは、何があっても常に初期化すべきなのです。 そして、その頃には...そうですね...なぜ良い習慣を止めるのでしょうか?

boolをfalseに初期化するには、デフォルトで構成すれば十分です。

struct X
{
  bool b;
  X() : b() {}
};