Hilfe ! Ich kann nicht programmieren ...



  • MaSTaH schrieb:

    Meinst du diesen verstümmelten Mischmasch aus einem Pointer und einer Referenz? Also da fühle ich mich in C++ sicherer.

    Völlig unabhängig davon, wie du dich fühlst, sind die Referenztypen in Java faktisch sicherer. Man kann nicht die Adresse manipulieren und wenn man das Zielobjekt ändert (oder auf null setzt) und das Objekt nicht mehr referenziert wird, sammelt es der Garbage Collector auf.
    Und das einzige, was "verstümmelt" ist, ist dass man es nicht dereferenzieren muss.

    MaSTaH schrieb:

    Wo ist der Unteschied? Java schmeißt ne exception und in C++ schmiert das Programm mit einer access-violation ab.

    DAS ist eben nicht gesagt. Darauf kannst du dich nicht verlassen. Stattdessen kannst du auch den Wert von ein paar Variablen in deinem Programm überschreiben oder irgendeinen Mist auslesen.

    MaSTaH schrieb:

    Wenn du eine Object-Referenz bekommst weißt du auch nicht was das ist. Zeigerarithmetik kennt Java nicht und deswegen hinkt der letzte Teil des Vergleichs.

    Ich kann immer abfragen, auf was für einen Typ die Referenz zeigt. Außerdem ist mir nicht ganz klar, was du jetzt meinst. Ich habe von Typensicherheit geredet.

    MaSTaH schrieb:

    Knock knock. Man muss Pointer aber nicht benutzen wenn man nicht will.

    Ähm doch. Mir ist sonst keine Möglichkeit zum dynamischen Binden bekannt. Oder sagen wir es so. Ohne Pointer sind deine Möglichkeiten *sehr* eingeschränkt.



  • wer raw-pointer und raw-arrazs verwendet, der lebt nicht in der heutigen Welt.

    In C++ schreibt man sich ne Klasse die die Arbeit uebernimmt, zB boost::array. Dort fuegt man dann noch asserts ein - und man ist auf der sicheren Seite.

    Also Java ist da nicht wirklich sicherer - nur einfacher. Das einzige was schoen ist, ist dass ein Fehler nur einen Teil des Programmes zum abschmieren bringt.



  • @sirlant:
    - eingabe
    - abspeichern in einen array
    - berechnung von 4 disjunkten teilmengen
    - ausgabe
    mind 4 elemente -> sobal leere Menge ausgeschlossen ist

    bei uns an der FH hat man mit Scheme(lisp dialekt) und c++ angefangen



  • was bedeutet disjunktiv?



  • Shade Of Mine schrieb:

    wer raw-pointer und raw-arrazs verwendet, der lebt nicht in der heutigen Welt.

    In C++ schreibt man sich ne Klasse die die Arbeit uebernimmt, zB boost::array. Dort fuegt man dann noch asserts ein - und man ist auf der sicheren Seite.

    Was sind raw-pointer, raw-arrays und asserts?



  • Wenn du diese Elemente der Sprache direkt benutzt, da dort keine Überprüfungen
    stattfinden. Stattdessen ist es besser Klassen zu verwenden, welche diese direkte
    Arbeit übernehmen und dir eine komfortable und sichere Arbeit mit Arrays ermöglichen.
    Natürlich ist das etwas langsamer, aber dafür sicherer und höchstwarscheinlich
    schneller beim coden (man hat ja weniger Arbeit).



  • SirLant schrieb:

    Natürlich ist das etwas langsamer

    Ein assert() ist eine Überprüfung, die (normalerweise) beim Release ausgeschaltet wird -> nicht langsamer. boost::array und viele Pointer-Wrapper haben keinen Overhead verglichen mit dem rohen Original. Dafür machen std::auto_ptr, boost::scoped_ptr und Konsorten das Programm wesentlich sicherer, indem sie nur die gerade nötigen Operationen erlauben und dann auch vereinfachen.



  • ah...alles klar...jetzt bin ich wieder ein wenig schlauer 🙂
    danke!



  • SirLant schrieb:

    was bedeutet disjunktiv?

    und-terme mit oder-verknüpfung



  • Findet ihr nicht, ihr zieht den Thread ein wenig weit, dafür, dass Jenni sich nicht wieder gemeldet hat? ^^



  • nein.


Anmelden zum Antworten