Was gehoert in main()?
-
Man kann ja seinen Code so gestalten, dass nachher im Mainloop nur noch
int main() { Application myApp; myApp.run(); return 0; }
steht.
Was sollte trotzdem immer explizit im Mainloop enthalten sein....
(srand Initialisierung, Schleifen, Variablen, etc)
-
Seltsame Frage...
Da gibts doch kein Patentrezept.
-
Anmerkung: Wenn ich Bock hab, dann kann ich mir ne komplette 3D Engine schreiben, die diese main-Funktion hat:
int main() { }
-
Ja... aber dann wird nix ausgefuehrt.
-
Raptor schrieb:
Ja... aber dann wird nix ausgefuehrt.
Doch - es steht nur nicht in main(). Sonst könnte ich ja schlecht die 3D Engine schreiben
-
Doch - es steht nur nicht in main(). Sonst könnte ich ja schlecht die 3D Engine schreiben
Natuerlich kannste sie schreiben aber halt nur nicht ausfuehren.
Es bleibt dann bei deinen definierten Funktionen, Klassen, die darauf warten in main aufgerufen zu werden.
-
Raptor schrieb:
Doch - es steht nur nicht in main(). Sonst könnte ich ja schlecht die 3D Engine schreiben
Natuerlich kannste sie schreiben aber halt nur nicht ausfuehren.
Es bleibt dann bei deinen definierten Funktionen, Klassen, die darauf warten in main aufgerufen zu werden.Bitteschön:
#include <iostream> class Engine { public: Engine() { std::cout << "Starte Engine..."; /* ... */ } }e; int main() { }
-
Sollte man es denn so machen, oder in main?
Oder ist es egal?
-
Cool! Also willst du dein Programm in den Konstruktoren und Destruktoren laufen lassen?
Ein Fall für den obfuscated-Code-ContestEdit: Für mich gehört in Main die Hauptschleife, die Initialisierung, und das Aufräumen, aber nicht zu abstrahiert. Bei mir füllt Main, drei Bildschirme.
-
hmm interessant
-
Raptor schrieb:
Sollte man es denn so machen, oder in main?
Oder ist es egal?Du solltest es auf keinen Fall so machen wie in meinem Code! Das war nur ein nicht ganz ernst gemeintes Beispiel!
-
randa schrieb:
Cool! Also willst du dein Programm in den Konstruktoren und Destruktoren laufen lassen?
Ein Fall für den obfuscated-Code-ContestKlar. in main() kommt nur noch ein cout << "Spiel beendet"; rein
Anmerkung: Nicht nur in den Ctoren. Ich kann ja problemlos aus nem Ctor andere Methoden, Funktionen aufrufen.
-
Klar.
Ist es denn das einzige Moeglichkeit, die main Funktion zu "skippen", oder kann man auch vernuenftigen Code _ohne_ main schreiben?
-
@interpreter wie rufst du in dem beispiel den dtor auf?
wartet main mit dem rücksprung bis du den dtor aufrufst oder wie läuft das
-
ja, so:
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { return 0; }
Ne, ohne Main bzw. WinMain kannst du nichts anstellen. Das ist die Startfunktion eines jeden Programms, hier startet man, und hier beendet man auch wieder. Wie gesagt, versuch nicht, Main irgendwie zu umgehen (so wie interpreter
), sondern schreibe die wichtigsten Initialisierungsfunktionen und den Programmablauf dort rein.
-
Hi!
Wo hast du das her, das man einfach nur was hinter die Klasse schreiben muss? Habe ich noch nie gesehen.
Code-Hakcer
-
@Code-Hacker
Deswegen steht hinter einer class definition das ;
und zwar genau deshalb, weil du da noch direkt objekte erstellen kannst.
-
Hi!
Raptor schrieb:
@Code-Hacker
Deswegen steht hinter einer class definition das ;
und zwar genau deshalb, weil du da noch direkt objekte erstellen kannst.Stimmt...hätte ich auch selbst drauf kommen können. Danke!
Code-Hacker
-
Code-Hacker schrieb:
Hi!
Wo hast du das her, das man einfach nur was hinter die Klasse schreiben muss? Habe ich noch nie gesehen.
Code-Hakcer
Naja, man kann nach einer Struktur oder Klassendefinition auch noch gleich Instanzen der jeweiligen Struktur/Klasse anlegen:
struct point { int x, y; }p1,*p2; int main() { std::cout << p1.x << std::endl;; p2 = new point; p2->x = 2; std::cout << p2->x; std::cin.get(); }
Sovok schrieb:
@interpreter wie rufst du in dem beispiel den dtor auf?
wartet main mit dem rücksprung bis du den dtor aufrufst oder wie läuft dasDer wird automatisch nach main() aufgerufen
-
ahso jetzt hab ichs verstanden
du blockst einfach den ctor *g*
-
Lol. Wieder 2 Seiten für sone Frage.....geil. Was würde ich nur ohne das Forum machen. :p