Aktuelle Zeit: 23.12.2024, 01:24

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Zeiger auf Funktion
BeitragVerfasst: 27.01.2008, 02:16 
Offline
Benutzeravatar

Registriert: 24.07.2007, 23:11
Beiträge: 283
kennt sich wer damit aus über all wo ichs versucht hab zu verstehen hab ich es nicht geblickt :S kann das mal wer genauer erklären...

Egtl. is ja mein Hauptsächliches prob so, dass ich ne Liste von Funktionen hab und ich halt ne Struktur(+ array davon) brauch die verschiedene davon verwenden wird jedoch jedes Element des Arrays andere Funktionen.

so hab ich mir das vorgestellt gehabt funtzt aber net (glaub ich... + pseudocode)
geht das irgentwie so wie ichs mir gedacht habe
Code:
struct ListeVonFunktionen
{
void* bla[5];
int para1;
int para2;
int para3;
};

ListeVonFunktion Script[10];

//...

Script[0].bla[0] = addEffekt();
Script[0].bla[1] = addBall();
Script[0].bla[2] = addPad();

//...

Script[10].bla[0] = addEffekt2();
Script[10].bla[1] = addBall();

//...

for(i = 0; i < 5; i++)
{
ListeVonFunktion->bla[i](int para1, int para2, int para3)
}

_________________
Be Fluffy!
kemomi.de


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeiger auf Funktion
BeitragVerfasst: 27.01.2008, 11:28 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Versuch das mal so:
Code:

int function1(int para1, int para2, int para3)
{
}
int function2(int para1, int para2, int para3)
{
}

struct ListeVonFunktionen
{
int (*bla)(int, int, int)[5];
int para1;
int para2;
int para3;
};

[...]
ListeVonFunktionen liste;
liste.bla[0] = function1;
liste.bla[1] = function2;

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeiger auf Funktion
BeitragVerfasst: 27.01.2008, 13:41 
Offline
Benutzeravatar

Registriert: 24.07.2007, 23:11
Beiträge: 283
wie sieht das aus wenn ich ne überladenene Funktion hab?

_________________
Be Fluffy!
kemomi.de


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeiger auf Funktion
BeitragVerfasst: 27.01.2008, 14:58 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Das, was ich da geschrieben hab, ist pures C, und C kann keine überladenen Funktionen, also kP :p

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeiger auf Funktion
BeitragVerfasst: 27.01.2008, 16:03 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Für überladene Funktionen solltest du eine Interface klasse erstellen, von der die funktionen erben.

Code:
class IInterface
{
public:
   virtual int machWas(char* param)
   {
      return 0;
   }

   virtual int machWas(int param, int param2)
   {
      return 0;
   }
};

...

class MachWasA : public IInterface
{
public:
    virtual machWas(char* param)
    {
        if(irgendwas)
            return 1;
        else
            return 0;
};

...


Dann kannst du einfach alle Zeiger in ein Array packen und gut ist.
Code:
array<IInterface*> funktionen;
funktionen.push_back(new MachWasA);
...

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Zeiger auf Funktion
BeitragVerfasst: 26.03.2008, 10:09 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Hier gibt es gute Infos zu Funktionspointern.
http://www.newty.de/fpt/index.html


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de