001
01.05.2004, 09:20 Uhr
(un)wissender
Niveauwart
|
Ok, der Parameter muss nicht double, sondern double& heißen. Anhand der Signatur wird entschieden, welche überladen Funktion benutzt wird. Allerdings scheinen Visual Studio .NET 2003 und vermutlich ältere Versionen, das nicht zu können (interner Compilerfehler). Der Beispielcode funzt mit g++ 3.x (vielleicht auch drunter), aber nicht mit VC.
Beispiel
C++: |
#include <iostream>
int main() { double zz = 0.0; typedef std::istream & (std::istream::*op_in)(double &); op_in op = &std::istream::operator>>; (std::cin.*op)(zz); std::cout << std::endl << zz << std::endl; return 0; }
|
-- Wer früher stirbt ist länger tot. Dieser Post wurde am 01.05.2004 um 09:34 Uhr von (un)wissender editiert. |