Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » methode in struct aufrufen geht net?

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
13.10.2006, 16:28 Uhr
~testo
Gast


Hallo,

ich versuche vegeblich eine Methode in einem struct aufzurufen. Geht das denn normalerweise nicht?

hier mein beispiel:

C++:
struct MyStruct
{
    int operator()(const int key) const
    {        
        int ret = 0;
        ret =  test();
        return ret;
    }
};

int Class::test()
{
     return 2;
}



danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.10.2006, 16:32 Uhr
~testo
Gast


ah ja klar weil sie net in der klasse ist..also müsste ich zuerst ein objekt der klasse erstellen...aber wenn ich in der klasse selbst dieses struct verwende dann würde eine endlosschleife entstehen...

kann ich das irgendwie umgehen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.10.2006, 20:31 Uhr
Spacelord
Hoffnungsloser Fall


Umschreib mal was genau du vorhast.

Gruß Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.10.2006, 21:24 Uhr
~testo
Gast


Ok ich versuche es zu beschreiben...

ich hab aus der stl eine datenstruktur


C++:
hash_map<Key, Data, HashFcn, EqualKey, Alloc>



und da heißt es HashFcn kann eine eigene Funktion sein.
siehe hier:
www.sgi.com/tech/stl/hash_map.html

nun fällt mir eben nix anderes ein als für HahsFcn ein struct zu nehmen um dort
eine Berechnung zu starten. Aber wenn ich nun aus der HashFcn eine weitere Funktion aufrufen wollen würde ...darin liegt dann mein problem.
die meinen default mässig wird das hier genommen :
www.sgi.com/tech/stl/hash.html

aber wenn ich meine eigene haben will setzt bei mir aus...


Ich habe es eben nun so gemacht:

C++:
struct MyHash
{
    int operator()(const int key) const
    {        
        int ret = 0;
        //for each e in vector
        ret = (ret * 31) + hash_i(key);
        std::cout << "Der key: " << ret << std::endl;
        return ret;
    }
    
    int hash_i(int x) const
    {
        return *(int*)&x;
    }
};

...

hash_map<int, HASH_DATA, MyHash, eqint> hash;
....

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.10.2006, 23:11 Uhr
kronos
Quotenfisch
(Operator)


Sehr geschickt wie du das machst
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.10.2006, 23:24 Uhr
~testo
Gast


öh....danke.
so ne antwort hätte ich jetzt am wenigsten erwartet
(gehe mal davon aus dass das ernst gemeint war
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.10.2006, 18:47 Uhr
0xdeadbeef
Gott
(Operator)


Joa, prinzipiell ist genau das gedacht. Mir ist zwar nicht ganz klar, wozu die Methode hash_i gut sein soll, die in der Implementierung nichts macht, aber das soll mir grad egal sein. Was du da geschrieben hast, nennt man gerne "Funktor", wobei das da nicht der mathematischen Definition entspricht. Vielleicht intuitiver ist "Funktionsobjekt", quasi eine Funktion mit Eigenschaften. Viele Algorithmen und Klassen der STL akzeptieren diese Art Objekt als Parameter, z.B. std::transform.

Bist du ganz allein auf die Idee gekommen? Das wär ziemlich beeindruckend.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.10.2006, 20:33 Uhr
Spacelord
Hoffnungsloser Fall


[Petze]Volkard´s Idee[/Petze]
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
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: