Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

21

03.01.2012, 13:27

Nebenbei bemerkt halte ich auch die Speicherverwaltung eines Betriebssystems für eine dumme Anwendung eines Singletons. Der Singleton sagt ja "Es darf bis zum Entropietod des Universums nur genau eine Instanz dieser Klasse geben". Und bei einer Speicherverwaltung... tja, verwalte mal den Speicher der eingebauten Grafikkarte. Huch, ist ja fast die selbe Logik. Huch, ich kann ja keine zweite Instanz erzeugen. Hätte ich doch mal lieber nur eine globale Instanz der Klasse benutzt und das Singleton endlich dem verdienten Tod überlassen.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

22

03.01.2012, 15:27

Wenn ich Deinen "Beruf" so sehe, dann war ich damals nur ca. 2-3 Jahre älter als Du ;)
Boah manchmal frage ich mich echt, wann ihr damit angefangen habt xDD

In Deinem Alter :D Ich habe aber auch mit 3 Sprachen und System-naher Entwicklung mit Assembler, Intel-Spezifikationen in der Hand und VGA-Dokumenten unter'm Arm angefangen ;)
Hach ja... jetzt mach' ich nur noch ganz anderes Zeug.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

23

03.01.2012, 15:54

tja, verwalte mal den Speicher der eingebauten Grafikkarte.


Oh gutes Argument. Ok ich nehm meine Behauptung zurück, dass das eine vernünftige Anwendung für ein Singleton ist.
Aber immer noch vernünftiger, als 99% der Anwendungen, die man so sieht.

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

24

03.01.2012, 15:59

tja, verwalte mal den Speicher der eingebauten Grafikkarte.


Oh gutes Argument. Ok ich nehm meine Behauptung zurück, dass das eine vernünftige Anwendung für ein Singleton ist.
Aber immer noch vernünftiger, als 99% der Anwendungen, die man so sieht.


Ja, das stimmt. Was jetzt aber kein Lob für Singletons ist :-) Aber ich merk schon, ich bin schon wieder auf einer Missionarsreise. Mag doch jeder nutzen, was er für richtig hält.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

25

03.01.2012, 16:08

Früher oder später findet jeder raus warum man um Singletons einen großen Bogen machen sollte ;)

26

03.01.2012, 16:15

Wenn ich Deinen "Beruf" so sehe, dann war ich damals nur ca. 2-3 Jahre älter als Du ;)
Boah manchmal frage ich mich echt, wann ihr damit angefangen habt xDD

In Deinem Alter :D Ich habe aber auch mit 3 Sprachen und System-naher Entwicklung mit Assembler, Intel-Spezifikationen in der Hand und VGA-Dokumenten unter'm Arm angefangen ;)
Hach ja... jetzt mach' ich nur noch ganz anderes Zeug.
Ich hab hier momentan das Buch von Heiko Kalista liegen und möchte mir bei manchen Kapiteln, z.B. bei den Singeltons die Haare rausreißen xD
Mir muss alles genau erklärt werden etc. Im Buch wird ja auch alles sehr gut erklärt, aber es kommt immer mehr dazu. Ich muss das alles erstmal verarbeiten und so weiter. Ich könnte z.B. an einem Tag das Buch durch haben, aber was würde es mir bringen, wenn ich die Möglichkeiten kenne, jedoch diese nicht anwenden kann. Das ist einer der hauptsächlichen Gründe, warum ich euch so oft Fragen stelle :P
Achja und wenn neben bei noch Schule ist, dann komme ich komplett aus dem Rhythmus.
Bin jetzt bei dem Kapitel angelangt, wo List,Vector usw. beschrieben werd'n. Hier komme ich mit Zeigern durcheinander und so ;(
Naja, ich würde gerne auch so einen Verstand haben, wie manch Andere hier.
Only God can judge me.

27

03.01.2012, 19:48

Kann mir jemand ein Bildliches Beispeil für den Iterator in einer Liste sagen? xD
Ist meine Theorie richtig?:
Der Iterator ist sozusagen ein Mann(Zeiger), der die Adresse von jedem Schließfach(Listeneintrag) kennt und auf jedes Schließfach zugreifen kann um etwas rauszuholen(auszugeben) oder auszutauschen(ändern). Zusätzlich kann er jedes neuhinzugefügte Schließfach zu seinen Adressen aufnehmen.
Only God can judge me.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »denniro« (03.01.2012, 19:55)


BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

28

03.01.2012, 20:20

Übung macht den Meister.

Es ist natürlich, dass man beim Lesen nicht alles versteht bzw. sich nicht alles merken kann. Wenn du irgendwann mal ein größeres Projekt umsetzt, wirst du viel neues verstehen. Du hast ein Problem, das du schöner lösen willst und kannst dich erinnern, dass es z.B. sowas wie std::vector gab. Jetzt kannst du nachschlagen, wie das genau funktioniert.

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

29

03.01.2012, 21:26

Die Illustration für einen Iterator wäre eher:

Ein Mann, der vor einem Schließfach am Bahnhof steht. Der Mann weiß, wie er zum nächsten Schließfach kommt, und er kann das Gepäckstück aus dem Schließfach für Dich rausholen oder was daran machen. Du musst nicht mehr wissen, wo die Schließfächer stehen oder ob es evtl. den Gang runter noch weitere Schließfächer gibt - das merkt sich der Mann für Dich. Du kannst ihm aber sagen: geh zum nächsten, geh weiter, geh weiter.

Manche Iteratoren können außerdem zurückgehen oder gar beliebige Schritte (z.B. drei Fächer vor) machen. Das hängt dann aber vom Container ab, für den der Iterator gilt.

Die Grenzen darfst Du Dir nicht vorstellen, als ob der Mann sofort erfährt, wenn ein neues Schließfach aufgestellt wird. Das ist nämlich explizit nicht der Fall! Nur Visual Studio hat da zusätzliche Logik eingebaut, so dass der Mann davon erfährt. Das Prinzip ist eher so, dass man mittels weiterer Männer einen Bereich absteckt, zwischen denen der Mann umherlaufen kann. ein bla.begin() ist quasi ein Mann, der vorne am ersten Schließfach lümmelt. Ein bla.end() ist ein Mann, der !hinter! dem letzten Schließfach steht. Und wenn Dein Iteratormann soweit gelaufen ist, dass er dem Ende-Mann ins Gesicht blickt, bist Du am Ende des abgesteckten Bereichs angekommen. Du darfst dort aber schon nicht mehr ins Schließfach greifen, weil Dein Mann ja nicht vor einem Schließfach steht, sondern vorm Endmann.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

30

03.01.2012, 22:29

Die Illustration für einen Iterator wäre eher:

Ein Mann, der vor einem Schließfach am Bahnhof steht. Der Mann weiß, wie er zum nächsten Schließfach kommt, und er kann das Gepäckstück aus dem Schließfach für Dich rausholen oder was daran machen. Du musst nicht mehr wissen, wo die Schließfächer stehen oder ob es evtl. den Gang runter noch weitere Schließfächer gibt - das merkt sich der Mann für Dich. Du kannst ihm aber sagen: geh zum nächsten, geh weiter, geh weiter.

Manche Iteratoren können außerdem zurückgehen oder gar beliebige Schritte (z.B. drei Fächer vor) machen. Das hängt dann aber vom Container ab, für den der Iterator gilt.

Die Grenzen darfst Du Dir nicht vorstellen, als ob der Mann sofort erfährt, wenn ein neues Schließfach aufgestellt wird. Das ist nämlich explizit nicht der Fall! Nur Visual Studio hat da zusätzliche Logik eingebaut, so dass der Mann davon erfährt. Das Prinzip ist eher so, dass man mittels weiterer Männer einen Bereich absteckt, zwischen denen der Mann umherlaufen kann. ein bla.begin() ist quasi ein Mann, der vorne am ersten Schließfach lümmelt. Ein bla.end() ist ein Mann, der !hinter! dem letzten Schließfach steht. Und wenn Dein Iteratormann soweit gelaufen ist, dass er dem Ende-Mann ins Gesicht blickt, bist Du am Ende des abgesteckten Bereichs angekommen. Du darfst dort aber schon nicht mehr ins Schließfach greifen, weil Dein Mann ja nicht vor einem Schließfach steht, sondern vorm Endmann.

Okey danke, versuche mir das zu merken. Ich komme nämlich besser klar, wenn ich mir es bildlich vorstellen kann :D
Only God can judge me.

Werbeanzeige