0 Tage Serie
cpp / intermediate
Snippet

Logische Kurzschlussauswertung in Kontrollstrukturen

C++ verwendet die Kurzschlussauswertung (Short-Circuit Evaluation) für die logischen Operatoren UND (&&) und ODER (||). Wenn der erste Operand eines UND falsch ist, wird der zweite nicht ausgewertet. Dies ist nützlich, um Pointer zu prüfen, bevor sie dereferenziert werden.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
bool isSecure();
bool hasAccess();
void validateUser() {
if (isSecure() && hasAccess()) {
std::cout << "Access granted" << std::endl;
} else {
// if isSecure() is false, hasAccess() is never even called
std::cout << "Access denied" << std::endl;
}
}
Erklärung
1
if (isSecure() && hasAccess())
Die zweite Funktion 'hasAccess' wird nur ausgeführt, wenn 'isSecure' true zurückgibt.