category: C / C++
DATE : 2006/10/04 (Wed)
DATE : 2006/10/04 (Wed)
C++ にあって C 言語(C99よりも前のもの)にはないものとして、bool 型の存在が挙げられます。
bool 型とは、真偽値を表す型で、true と false の2値からなります。
(;^ω^)Java で言う boolean 型ですね
ただし、true と false はそれぞれ int 型に変換できます。具体的には、true が 1、false が0となります。
(;^ω^)Java では boolean 型は他の型に変換できませんが、C 言語の条件分岐は 0 が偽、0以外が真という扱いでしたから、その名残なのでしょう
例えば、次のように bool 値を表示するとします。
cout << true << endl; cout << false << endl;
すると、次のような結果になります。
1 0
このように bool 値そのものが int 値と同じように扱えるため、条件分岐の際には bool 値をそのまま使います。
bool isValid = check();
if (isValid) {
// OK
}
else {
// ERROR
}
(;^ω^)ここらへんは、Java と同じような書き方になりますね
ちなみに、false は int 値の 0 と等しいため、NULL ポインタも false と等しくなります。
すると、NULL チェックは次のように書けます。
// 処理に成功した場合は生成した Object を、
// 処理に失敗した場合は NULL ポインタを返す関数
Object* createObject() { ... }
int main() {
Object* object = createObject();
// NULL チェック
if (object) {
// OK
}
else {
// ERROR
}
}
0(NULL ポインタ)以外は(当然のことながら)非0なので、NULL ポインタでなければ上の if 文は成立します。
PR
●この記事にコメントする
忍者ブログ [PR]
