У меня есть перегруженный equals (включая == и !=), который проверяет, равны ли два объекта, а затем возвращает булево значение.
К сожалению, она выводит 0 или 1. Я знаю, что это правильно, но я не могу понять, как заставить его выводить true или false для удобства чтения.
Я даже пробовал:
if (a.equals(b))
{
return true;
}
return false;
Однако C++ достаточно упрям, чтобы выводить 0 или 1.
Любая помощь будет принята с благодарностью.
Edit - Print is done:
cout << "a == b is " << (a == b) << endl;
Desired output is
a == b is true
Вам нужно использовать std::boolalpha
:
cout << boolalpha << yourthing() << endl;
Если вам нужно сделать это вне потока вывода <<
, это простое троичное выражение:
std::string str = (a == b) ? "true" : "false";