Methodenaufruf
-
Wieso deklarierst du die Funktion nun plötzlich in einer Klasse? Wie kommst du auf die Idee?

Grüssli
-
Wieso packst du eine freistehende Funktion in eine Klasse? Wo ist der Sinn dabei?
Welchen Fehler?
-
Okay, wenn ich aus der Header alles rauswerfe ausser der Funktion dann funktioniert es.
Hatte im Internet nur gesehen das man in der Header die Variablen und Methoden in zBsp. public: oder private: Schubladen stecken kann und das geht ohne class nicht. Daher dachte ich das gehört immer dazu.Dann verstehe ich aber nicht wieso er es mit class in der cpp dennoch nicht kennt.
Werd jetzt mal nach einem vernünftigen Buch suchen...
-
geht_nid schrieb:
int* testFunction(char* charP){ int int_arr[25]; int* intP = int_arr; //Do Something return intP; }Der Speicher, auf den intP zeigt, wird nach Verlassen der Funktion ungültig! => böse
-
Jah, genau da bin ich vor 2min auch drüber gestolpert, das alle Zeiger in meiner main() ins Nirvana zeigen.
Jetzt hab ich die Deklaration der Arrays aus den aufgerufenen Methoden einfach mit in die Header gepackt, so gehts jetzt zumindest mal
-
... das Buch ist sehr dringend zu empfehlen

http://www.c-plusplus.net/forum/viewtopic-var-t-is-251551.htmlGrüssli
-
// Inhalt foobar.hpp class foobar { public: int foobar_calc(); }; // inhalt foobar.cpp int foobar::foobar_calc() { return 1; }So muss das man das bei Klassen machen.
-
Zeus schrieb:
C++ hat ein One-Pass-Kompiler, daher mussen alle Symbole vor der Nutzung deklariert werden
Nur in Klassen gilt das Ganze nicht, warum eigentlich?
-
wxSkip schrieb:
Zeus schrieb:
C++ hat ein One-Pass-Kompiler, daher mussen alle Symbole vor der Nutzung deklariert werden
Nur in Klassen gilt das Ganze nicht, warum eigentlich?
Was gilt nicht? - Bei Klassen gitl das gleiche. Vor der Benutzung der Klasse muss sie deklariert worden sein. Und wenn du sie verwenden willst (oder ein paar andere Sachen machen willst) dann musst sie sogar defniert worden sein (das muss bei Funktionen selbstverständlich nicht sein).
Siehe dazu auch hier.
-
drakon schrieb:
Was gilt nicht?
Members sehen alle anderen Members, auch welche, die erst fünf Bildschirme weiter unten deklariert werden.
-
Ausnahme sind Memberdeklarationen, weil sie zu Klassenspezifikation gehören:
struct Object { Object() : obj(new Object()) { // Who the fuck is obj? } virtual ~Object() { delete obj; } Object* obj; // Oh an obj!!! };An die hab ich nicht gedacht, da haben die Compilerbaue bisschen getrickst.