JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=51e2054e94ab9190538920b2c5943c47Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

[]-Operator überladen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 20.01.2005, 22:53    Titel: []-Operator überladen Antworten mit Zitat

Hallo alle zusammen,
ich will sinngemäß eine Klasse schreiben, die Arrays behandelt. Sie soll zum Beispiel den []-Op überalden, damit er sicher vor Arrayüberschreitungen ist.
Jetzt aber meine Frage: Wie sieht das aus??? Der muss ja nen Parameter kriegen...
@Patrick: Nein, keine Vektorklasse aus der STL!!! Erstens mag ich die STL net, zweitens schützt auch die net vor Überschreitung.
@MiracleBoy: Guck in deine PNs!!!
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free


Zuletzt bearbeitet von FH am 20.01.2005, 23:06, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 20.01.2005, 22:58    Titel: Antworten mit Zitat

CPP:
datentyp operator [] (int index_X, int index_Y)
{
}


jetzt sagt mir mal was die STD ist? Ich kenn nur die STL und den namespace std.

Achja, sicher schützt die vor überschreitungen! Es wird ein std::logical_error geworfen Wink Die STL nicht mögen, ist irgendwie... *ugly*
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 20.01.2005, 23:07    Titel: Antworten mit Zitat

Gewöhn dich dran, das ich die STL net mag.
Wieso übernimmt der 2 Ops? Bei 2-Demensionalen? Und was ist dann mit 3D-Arrays?
Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 20.01.2005, 23:09    Titel: Antworten mit Zitat

CPP:
datentyp operator [] (int index_X, int index_Y, int index_Z)
{
}


Zum anderen Thema: Was Du nicht verstehen willst/kannst deklarierst Du als "nicht mögen". Ich interpretiere das als "engstirnig und faul".

Nichts für ungut.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 20.01.2005, 23:17    Titel: Antworten mit Zitat

Ich hab mit der STL ein anderes Problem: Man kann in sie nicht hineinesehen. Bei anderen Dingen kann ich mit Debugger den Kram intern verfolgen, Aufrufe z.B. in der iostream.h ändern, etc. Ich nutz sie hin und wieder für strings. Auch der Vektor hat schon einen Einsatzbereich, wirft aber halt "nur" einen Fehler. Es ist also nicht so, dass ich es net verstehen will. Ich bin jemand, der mit Vorliebe bis ins kleinste Detail geht, deshalb mag ich auch Assembler. Da kannste fast alles kontrollieren. Wenn mir jemand ein Tut zum schreiben von Binärcode kennt, soll er das sagen! Ich würds gerne lesen. Dieses bis ins kleinste Detail lässt die STL durch ihre Kapselung nicht zu. Kapselung ist jan nicht schlecht, aber sie sollte in bestimmten Fällen umgehbar sein, dass man sie durchbrechen kann. Geht bei der STL nicht, da vorkompiliert, oder was imemr auch...
Trotzdem danke ich für die schnelle Lösung.
Gruß und Danke

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 20.01.2005, 23:20    Titel: Antworten mit Zitat

Also beim besten Willen, STL gehört zu C++ wie GOTO zu Basic...
Will sagen, C++ ohne STL ist eigentlich kaum noch vorstellbar...

Wir leben im Jahr 2005, wieso soll ich jedesmal wenn ich eine simple doppeltverkettete Liste brauche mir die Mühe machen und selber was schreiben, wenn ich in der STL eine schnelle, saubere und robuste Vorlage hab?

Ich mein, da kannst du eigentlich genauso gut auch wieder auf C umsteigen... Wink

Die Vorteile der STL dürften ja wohl klar sein... Wink

Edit:
Zitat:
Man kann in sie nicht hineinesehen.

Falsch!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 20.01.2005, 23:23    Titel: Antworten mit Zitat

FH hat Folgendes geschrieben:
Geht bei der STL nicht, da vorkompiliert, oder was imemr auch.


Nimms mir net übel, aber Du hast 0 Plan. Aber heftigst.

Selbst Dein cout aus der <iostream> (OHNE *.h, veralteten scheiß braucht keiner mehr) ist mitgleid der STL.

Die STL basiert auf templates, das bedeutet sie kann weder vorcompiliert sein noch sonst was! Sie ist opensource! Schnapp dir mal die datei <string> und öffne sie mit dem Notepad, dann reden wir weiter.

Allein schon da sie auf templates basiert ist vorcompilierung unmöglich (Zum anderen Thema: Du hast Templates nicht verstanden)

Ich weiß nicht wo Du so einen Bullshit her hast, aber den solltest Du ganz schnell vergessen und mal Deinen Horizont erweitern.

Und die STL läßt sich prima debuggen, da OpenSource! Und wenn du ne vorliebe für Assembler hast, dann solltest Du auch wissen, das Assembler keine Logikfehler debuggt im gegensatz zu einer Hochsprache.

Noch am Rande: Die STL ist nicht gekapselt! Man kann keine Container kapseln (so ein Bullshit gehört verboten!) sondern wurde ausgelegt für erweiterung, sonst wäre boost noch nicht mal entstanden!

Am besten Du machst Deine Hausaufgaben in STL nochmal von ganz vorne, falls Du dich nicht weiter blamieren willst.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 21.01.2005, 00:02    Titel: Antworten mit Zitat

*ÄußerstGroßesUUPPPPSSS* Embarassed
Ich hatte irgendwann man eine Datei geöffent, die anscheinend nicht zur STL gehörte und nur so schöne Cryptische Zeichen wie eine EXE enthielt. Ich dachte, die gehört dazu..... Die iostream sieht ganz gut aus... Keine komischen Zeichen, etc. (Nur wie in der .h dieses CRTIMP Sad )
Templates sind eigentlich ganz OK, aber ich finde, man kann alles übertreiben. Die STL kratzt da zwar IMHO manchmal an der Grenze, aber gut. So ein Mist! Hab ich doch glatt in die Falsche Datei geschaut!!!
Gut, großteile meiner Vorurteile gegen STL aufgehoben!!!
Nur eins noch nicht, und zwar: STL!!! *Umarm* Wink
Ich glaub, die darf nun öfters zum Zug kommen!!! Werd mir jetzt vermutlich nen Mischstil angewöhnen! (iostream.h, da ich mir das using../std:: spare) und dafür string statt char str..[?].
Ich weiß, das Assemble keine Logikfehler debuggt, aber hab ich nen Kopf oder nicht (gut, geb zu, der hat gerade eben einen großen Fehler eingesehen!).
Nur eins nervt mich noch: Das extern. Das scheint bei eigenen Templates in DLLs kompliziert zuw werden! Und die Namensgebung:
STL hat Folgendes geschrieben:
basic_string<_E, _Tr, _A> __cdecl operator+(const _E *_L,
const basic_string<_E, _Tr, _A>& _R)
Mehr kurze Bezeichner waren auch net drin, oder?
Gruß und danke für die Aufklärung

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 21.01.2005, 00:07    Titel: Antworten mit Zitat

FH
Du kannst kein Template per DLL exportieren, Templates sind schablonen die zu Funktionen werden, wenn du ein Template mit einer DLL exportierst vierliert das Template seinen ID-Code (was auch logisch ist).

Zu den Bezeichnern: besser so als 30 zeichen pro typ und wert.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 21.01.2005, 00:14    Titel: Antworten mit Zitat

Ämmm... Was tut dann diese Zeile?
CPP:
extern template class _CRTIMP
    basic_ostream<wchar_t, char_traits<wchar_t> >& __cdecl operator<<(
        basic_ostream<wchar_t, char_traits<wchar_t> >&,
        const basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >&);

Gruß

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 21.01.2005, 08:29    Titel: Antworten mit Zitat

prototyp für globalen operator<< des basic_ostream

http://83.246.114.104/patrick/schnippel.php?id=12 << STL rocks Wink

Achja, ich würd erst nicht versuchen den Code der STL zu verstehen, der ist extrem komplex und geht oft über 30 Dateien hinweg mit tieferer Verschachtelung. Ist für Templateanfänger (noch) nichts.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 21.01.2005, 13:54    Titel: Antworten mit Zitat

@FH: Zu deinem konkreten Problem: Es gibt auch noch die Methode at() bei vectoren, etc...
Die übernimmt das gleiche wie der []-Operator, nur dass noch eine Überschreitungsprüfung enthält Wink

@all: Bitte ein gemäßigteren Ton...*sfz*
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 21.01.2005, 21:33    Titel: Antworten mit Zitat

Ämmm... Tschuldigung, ich war eigentlich auf das "_CRTIMP" in dem Ding aus. Das kenn ich von den .h-s als __declspec(dllimport), was aber nach dir nicht sein kann. Bitte um Aufklärung.
@TLoP: Wieso gemässigter? War der Ton nicht (noch) OK? Wir sind immerhin beim Thema geblieben. Und sachlich war der Ton doch (meistens) auch.
@Patrick: Das mit deiner Freundin tut mir Leid. Ich schäme mich gerade dafür, dass ich mich mit der gezofft hab. *schäm* Embarassed Tut mir Leid! EHRLICH!!!!!!!!!!
Gruß und sehr gute Besserung an Patricks Freundin

FH
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 21.01.2005, 22:30    Titel: Antworten mit Zitat

FH hat Folgendes geschrieben:
@TLoP: Wieso gemässigter? War der Ton nicht (noch) OK? Wir sind immerhin beim Thema geblieben. Und sachlich war der Ton doch (meistens) auch.

Ja, so schlimm wars auch net...Hab nur gemeint, ein paar etwas "unqualifizierte Unsachlichkeiten" herausgelesen zu haben Wink Razz

@Patrick: Mir tut das auch leid...
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum