Bool-Typen sind kleiner als Int-Typen und belegen daher weniger Speicherplatz. Abhängig von dem System, für das Sie kompilieren, kann ein Int 4 - 8 Byte lang sein, während ein Bool 1 Byte lang ist (wie in diesem MSDN-Artikel zu sehen ist ).
Kombinieren Sie dies mit einigen Aspekten von KISS und gutem Programmdesign, und es wird offensichtlich, warum es besser ist, einen Bool zum Speichern einer Variablen zu verwenden, die immer nur zwei Werte hat.
Warum komplizieren Sie Dinge mit einem Objekt, das einen weiten Bereich von Werten speichern kann, wenn Sie sicher sind, dass Sie immer nur 1 von 2 verschiedenen Werten speichern müssen?
Was passiert in dem System, das ein int verwendet, wenn Sie dort 75 speichern? Wenn Sie zusätzliche Bedingungen hinzugefügt haben
if (value >= 0 )
return true; //value is greater than 0, thus is true
else
return false; //value is 0 or smaller than 0, thus is false
oder
if (value == 0)
return false; //value is greater than 0, thus is true
else if (value == 1)
return true; //value is 0 or smaller than 0, thus is false
Dann sind Sie für diese Situation abgesichert. Aber wenn nicht, dann nicht.
Sie könnten auch einen Fall haben (abhängig davon, wie Sie den Wert des int ändern), in dem Sie einen Pufferüberlauf haben und der Wert auf 0 oder die Untergrenze Ihres int "zurückgesetzt" wird (was irgendwo im sein könnte) Bereich von -127 bis -9.223.372.036.854.775.808, abhängig von Ihrer Zielarchitektur ) Was passiert dann in Ihrem Code?
Wenn Sie jedoch einen Bool verwenden, können Sie Folgendes verwenden:
if(continueBool == true)
return true;
else
return false;
Oder auch:
return (continueBool== true) ? true : false;
oder auch:
return continueBool;
Abhängig von Ihrem Compiler kann es Optimierungen für Code geben, der Bools verwendet, um zugeordnete True / False-Werte zu speichern. Während es möglicherweise keine Optimierungen für Ints gibt, die zum Speichern zugeordneter wahr / falsch-Werte verwendet werden.
Wir müssen auch daran denken, dass C ++ (zusammen mit C, Assembly und FORTRAN) verwendet wird, um hocheffizienten, kleinen und schnellen Code zu schreiben. Daher ist es in diesem Fall besser, einen Bool zu verwenden - insbesondere, wenn Sie auf die Verwendung von Variablen, Speicher, Cache oder Prozessorzeit hingewiesen werden.
Eine ähnliche Frage wäre: Warum sollte ich eine Ganzzahl (einen Wert) in einem Float speichern? Antwort: Das solltest du nicht, denn es hat keinen Sinn.
Lange Rede, kurzer Sinn: Als Ihr Lehrer / Tutor / Dozent / Professor müssen Sie die Größen verschiedener Werttypen durchgehen (falls Sie sie verpasst haben) und wissen, warum sie in der Softwareentwicklung wichtig sind.
Ich hoffe, das hilft als Ausgangspunkt (ich hoffe auch, dass es nicht pedantisch rüberkommt)
int
ist das Speichern einer Ganzzahl und der Zweck von abool
ist das Speichern eines Booleschen Wertes (true
oderfalse
). Die Verwendung einesbool
IMO spiegelt seine Verwendung viel besser wider als die Verwendung einesint
.