Thread View: de.comp.lang.c++
3 messages
3 total messages
Started by ured0533
Tue, 01 Aug 1995 12:12
Mitgliedsfunktionen als Funktionsargument?
Author: ured0533
Date: Tue, 01 Aug 1995 12:12
Date: Tue, 01 Aug 1995 12:12
50 lines
1646 bytes
1646 bytes
Tach!
Wie kann ich innerhalb einer Klasse einen pointer auf eine Mitgliedsfunktion (die auch Zugang zu anderen Mitgliedern der Instanz haben soll) als Funktionsargument uebergeben? Um die Frage etwas deutlicher zu machen,
hier ein kleines Beispiel, in dem ich bezglich der Pointer auf Funktionen die normale C Konvention benutze:
class theClass
{
...
void selectingFunction();
void callingFunction(int (*selectedFunction)());
int calledFunction1();
int calledFunction2();
...
};
void theClass::selectingFunction()
{
int (*function)();
switch(whatever)
{
case 1: function=calledFunction1; break;
case 2: function=calledFunction2; break;
...
}
callingFunction(function);
return;
}
void theClass::callingFunction(int(*selectedFunction)())
{
int i;
i=selectedFunction();
return;
}
int theClass::selectedFunction1()
{
return 1;
}
int theClass::selectedFunction1()
{
return 2;
}
Ich hab's unter Anderem mit void (theClass::*function) und function=&this.calledFunction1 probiert. Hilft aber nicht! Aber, wie geht es dann? Wer kann helfen?
Ich benutze uebrigens den Borland C++ - Compiler fuer OS/2 Vers. 2.0.
tia
Steffen Uredat
Re: Mitgliedsfunktionen als Funktionsargument?
Author: Andre Deparade
Date: Tue, 01 Aug 1995 14:48
Date: Tue, 01 Aug 1995 14:48
26 lines
1415 bytes
1415 bytes
|> Wie kann ich innerhalb einer Klasse einen pointer auf eine Mitgliedsfunktion
(die auch Zugang zu anderen Mitgliedern der Instanz haben soll) als
Funktionsargument uebergeben? Um die Frage etwas deutlicher zu machen,
|> hier ein kleines Beispiel, in dem ich bezglich der Pointer auf Funktionen
die normale C Konvention benutze:
[bsp geloescht]
|> Ich hab's unter Anderem mit void (theClass::*function) und function=&this.calledFunction1 probiert. Hilft aber nicht! Aber, wie geht es dann? Wer kann helfen?
|> Ich benutze uebrigens den Borland C++ - Compiler fuer OS/2 Vers. 2.0.
ich denke so:
void theClass::callingFunction(int(*selectedFunction)())
{
int i;
i= this.*selectedFunction();
return;
}
fuer solche dinge gibt es .* bzw. ->*. dazu steht was im stroustrup, ziemlich am
anfang.
Bin aber selber darin nicht fit, ist nur so eine vermutung.
dpi
Re: Mitgliedsfunktionen als Funktionsargument?
Author: Enno Sandner
Date: Tue, 01 Aug 1995 18:42
Date: Tue, 01 Aug 1995 18:42
18 lines
1059 bytes
1059 bytes
Der korrekte Typ einer Memberfunction der Klasse theClass, die keine
Argumente erwartet und eine Ganzzahl liefert, ist 'int (theClass::*)();'
Zum Aufruf benoetigt man eine Instanz von 'theClass' oder einer Unterklasse,
z.B:
class theClass
{
public:
int call() {
int (theClass::*function)(); // definieren
function=&theClass :: boing; // zuweisen
int i=(this->*boing)(); // aufrufen
}
int boing() { return 4711; }
};
Gruss
Enno
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads