006
20.04.2004, 08:30 Uhr
virtual
Sexiest Bit alive (Operator)
|
@ (un)wissender, typecast: cout<<i++ ist definiert, es kommt der Wert vor der Erhöhung raus. Daß der Audruck definiert ist, liegt auf der Hand, denke ich: es gibt nur eine Stelle, wo ein Nebeneffekt auf i wirkt. Daß der Ausdruck den wert vor der erhöhung ausgibt, liegt einfach an der Rangfolge der Operatoren (++ wird vor << ausgewertet). Das hat allerdings nicht damit zu tun, daß der Kompiler irgendwas auswerten muß, um den Typ von was herauszubekommen, denn der Typ steht ja bereits durch die Deklaration fest. Es ist einfach so festgelegt. Wäre dem nicht so, wäre der Audruck ja gleichbedeutend mit (cout<<i)++. Also würde man einen op++ benötigen, der einen ostream als parameter hat und das gibt es imho nicht. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |