Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Pointer auf überladene Memberfunktionen + 1.Mai

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
01.05.2004, 09:01 Uhr
(un)wissender
Niveauwart


Schönen Mai euch allen, ich hoffe der Kater ist nicht so groß, meiner geht.

Jetzt genau die richtig Frage:
Wie realisiere ich Pointer auf überladene Memberfunktionen?


C++:
typedef std::istream & (std::istream::*op_in)(double);
op_in op = &std::istream::operator>>; //So geht es nicht :(


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: