🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
3 messages
3 total messages Started by ured0533 Tue, 01 Aug 1995 12:12
Mitgliedsfunktionen als Funktionsargument?
#184
Author: ured0533
Date: Tue, 01 Aug 1995 12:12
50 lines
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 bezglich 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?
#187
Author: Andre Deparade
Date: Tue, 01 Aug 1995 14:48
26 lines
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 bezglich 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?
#190
Author: Enno Sandner
Date: Tue, 01 Aug 1995 18:42
18 lines
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