Funktion in Methode
-
Hi,
wie ist es möglich eine Funktion innerhalb einer Methode zu deklarieren? Ich rufe, geschweige denn deklariere, die Klasse irgendwo anders. Ich möchte sie einfach in der Methode erstellen, sprich:class TolleKlasse { public: void Load-Methode(const char* Filename); }; void TolleKlasse::Load-Methode(const char *Filename) { AUX_RGBImageRec *LoadBMP(const char *filename) { //löwenzahn mit fußpilz blablabla.... } };Warum geht das nicht und wie kann ich das realisieren? komplett in der Klasse deklarieren möchte ich sie auf keinen Fall.
Vielen lieben Dank im Voraus!
-
Was soll das bringen? Für was brauchst du das?
-
Ganz einfach: Ich will über die Methode eine Texturladen.
-
Was macht das für einen Sinn?
Schonmal was von vererbung gehört?
-
Was willst Du machen?
Geht's genauer?
-
Hä, versteh ich nicht wie soll das mit Vererbungen gehen....?
-
und warum schreibst du den code zum laden nicht einfach in die methode? wozu soll die zusätzlich funktion gut sein?
-
du kannst das mit einem kleinen trick machen:
void klasse::methode() { struct omghax // die struktur ist nur innerhalb dieser methode bekannt... { static int funktion() // ...diese funktion ebenso { return 42; } }; std::cout << omghax::funktion(); // 42 }sowas kann dann und wann nützlich sein, z.b. wenn man funktoren lokal halten will. ob das in deinem fall sinnvoll ist, bezweifle ich aber. so ein code ist schnell schlecht lesbar.
-
Hm, hört sich schonmal gut an...das Prolem ist nur das wenn ich ne neue Funktion in der Methode deklariere, er das nicht zulässt.
-
warum einfach, wenns auch kompliziert geht...

-
warum einfach, wenns auch kompliziert geht...

Mhm?
-
pilz schrieb:
Hm, hört sich schonmal gut an...das Prolem ist nur das wenn ich ne neue Funktion in der Methode deklariere, er das nicht zulässt.
was? wer lässt was nicht zu? die lösung steht doch da. drück dich doch mal so aus, dass man nicht deine gedanken lesen muss, um zu verstehen was du eigentlich willst.
-
Jop, habs schon hinbekommen. Anstatt über den Zeiger eine Funktion zu deklarieren, hab ich einfach nur den Zeiger erstellt. UNd nu gehts, danke nochmal.