c++ Code erklärung

3Cyb3r

Erfahrenes Mitglied
kann mir jemand folgende Zeile erklären?
Code:
return m_bAktiv ? (fVergangeneZeit < m_fDauer) : true;
ist das ne if abfrage? wenn m_bAktiv false ist aber fVergangeneZeit kleiner fDauer
kommt true zurück?

und diese Zeile
Code:
m_fminFPS			= (fFps < m_fminFPS) ? fFps : m_fminFPS;
was macht die dann?

thx im voraus
mfg cyber
 
Hi.

Das ist der tenäre Operator, und ansich nichts anderes als ein if. Nur in einer leicht anderen Form. (Diese Form hat den Vorteil, in manchen Situationen einsetzbar zu sein, wo ein if nicht erlaubt wäre.)

Die Struktur ist wie folgt:

boolscher Bedingung ? Wert wenn wahr : Wert wenn falsch

Dein erstes Snippet als if wäre also so:
Code:
if (m_bAktic)
{
    return (fVergangeneZeit < m_fDauer);
}
else
{
    return true;
}

..und der Zweite:
m_fminFPS = () ? fFps : m_fminFPS;
Code:
if (fFps < m_fminFPS)
{
    m_fminFPS = fPS;
}
else
{
    m_fminFPS = m_fminFPS; // jaja, der else-Zweig ist unnütz. ;)
}

Den else-Zweig kannst hier weglassen, der vollständigkeit halber, habe ich ihn aber gelassen. :D

lg, Alex
 
Zurück