Преобразование в bool
Преобразование в bool - это приведение значения
любого типа к логическому типу. В C++ существует
неявное преобразование в bool и явное приведение
с помощью операторов static_cast, const_cast,
reinterpret_cast, а также C-приведения. При неявном
преобразовании 0, '\\0' и нулевой указатель
дают false, а все остальные значения - true.
Явное приведение работает по тем же правилам.
Синтаксис
bool b = value;
bool b = static_cast<bool>(value);
bool b = (bool)value;
Пример
Давайте преобразуем число 1 и число 0
в логический тип неявно:
#include <iostream>
using namespace std;
int main()
{
int a = 1;
int b = 0;
bool res1 = a;
bool res2 = b;
cout << res1 << endl;
cout << res2 << endl;
return 0;
}
Результат выполнения кода:
1
0
Пример
Давайте преобразуем указатель в логический тип
явно с помощью static_cast:
#include <iostream>
using namespace std;
int main()
{
int a = 5;
int* p1 = &a;
int* p2 = nullptr;
bool res1 = static_cast<bool>(p1);
bool res2 = static_cast<bool>(p2);
cout << res1 << endl;
cout << res2 << endl;
return 0;
}
Результат выполнения кода:
1
0
Пример
Давайте преобразуем строку в логический тип с помощью C-приведения:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1 = "abcde";
string str2 = "";
bool res1 = (bool)str1.size();
bool res2 = (bool)str2.size();
cout << res1 << endl;
cout << res2 << endl;
return 0;
}
Результат выполнения кода:
1
0
Смотрите также
-
оператор
static_cast,
который выполняет явное преобразование типов -
оператор
implicit,
который выполняет неявное преобразование типов -
функция
to-int,
которая преобразует значение в целое число -
функция
to-string,
которая преобразует значение в строку