Имам претоварени равни (включително == и !=), които проверяват дали два обекта са равни и след това връща булево значение.
За съжаление, той отпечатва 0 или 1. Знам, че е правилно, но не мога да разбера начина, по който да го накарам да отпечата true или false за целите на четливостта.
Дори опитах:
if (a.equals(b))
{
return true;
}
return false;
C++ обаче е достатъчно упорит, за да изведе 0 или 1.
Всяка помощ ще бъде оценена.
Редактиране - Отпечатването е готово:
cout << "a == b is " << (a == b) << endl;
Желаният изход е
a == b е вярно
sizeof(bool) == 1
на моята платформа, така че неuint
. Но те наистина са само 1 и 0 отдолу. - person Seth Carnegie   schedule 24.11.2011int
, той не е такъв...можете да присвоите 35 на bool и пак ще тест за равенство с== true
. stackoverflow.com/questions/356726 / - person HostileFork says dont trust SE   schedule 24.11.2011true
и ще работи. Той обаче няма да тества като равен на това, което сте му присвоили. Това е различно от видовете трикове, използвани за внедряване на bool от дните на C. Следният код отпечатва само b == true:bool b = 34; if (b == 34) { cout << "b == 34" << endl; } if (b == true) { cout << "b == true" << endl; }
- person HostileFork says dont trust SE   schedule 25.11.2011