Soll ich mit C# oder mit C++ anfangen?



  • net schrieb:

    damit kannste doch keine ableitungen verhindern wie mit 'sealed'.

    es ist effektiv verhindert, weil man das objekt nicht polymorph verwenden kann.

    DEvent schrieb:

    dann soll man doch einfach in die doku reinschreiben wer davon eine klasse ableitet sollte dies und jenes beachten. oder sagen das man davon keine ableitungen machen soll.

    Ja und was spricht dagegen dass in den Code zu schreiben?

    Schau dir C++ an: kein virtueller Dtor und schon ist das ableiten eine qual, also lieber layering.

    du hast sowieso grosse probleme wenn du von bestimmten typen ableitest:

    nimm als beispiel mal einen String. Nun willst du davon einen NonCaseString ableiten der nicht auf gross/klein schreibung achtet.

    klingt gut?

    falsch, ist eine katastrophe:
    denn definiere mal den op== und op= dafuer 😉

    man sealed oft klassen durch das design. un in C# und Java geht man eben von dem gedanken aus: der programmierer soll so wenig fehler wie moeglich machen koennen. da ist ein sealed praktisch.

    ich finds immer besser wenn man so wenig einschränkungen wie möglich hat. wenn man so ein misst macht ( zB von klasse ableiten, die kein virtual dtor hat ) dann hat man eben den salat.

    Mag sein dass du das gut findest, und dass du es so bevorzugst, aber gegen den OO Gedanken wiederspricht ein sealed trotzdem nicht.

    und welche klassen sind bei java schon final? ich hab zumindest noch keine gesehen ( hantiere mit swing meistens ). bei dem .net framework ist fast jede klasse sealed (zumindest bei managed dx).

    und? nur weil in Java sealed weniger oft verwendet wird, ist es dort ok?

    ich habe eher das gefuehl du leitest viel zu oft ab. ich erbe quasi nie, meine klassen hierachien sind kaum 3 ebenen tief. idR wird von garnichts abgeleitet...



  • Also sollte ich eurer Meinung nach mit C# anfangen oder habe ich das jetzt falsch verstanden?

    mfg Phill



  • Phill schrieb:

    Also sollte ich eurer Meinung nach mit C# anfangen oder habe ich das jetzt falsch verstanden?

    Meiner Meinung nach nicht. *g*
    Sorry, will dich nicht noch weiter verwirren, aber mit dieser Frage haben einige Programmierer zu ringen, ob sie umsteigen, oder nicht.

    Ich persönlich sehe es so, dass C++ eigentlich die solidere Wissensbasis ist und sollte die Relevanz von C# mal deutlich über 50% steigen, dann ist der Umstieg auch nicht SO schwer.
    Ich schätze eine spätere Umgewöhnung von C# auf C++ als schwieriger ein.

    Aber halt nur meine Meinung.



  • SeppSchrot schrieb:

    Ich schätze eine spätere Umgewöhnung von C# auf C++ als schwieriger ein.

    ist ja auch so. c++ ist um einiges komplexer als c# und java. das ist auch einer der gründe warum diese sprachen erfunden wurden. selbst bei den c++ compilern gibt es keinen, der 100% c++ kann.



  • stimmt alleine wegen dem eingebauten garbage container ist java, c# um einiges einfacher. aber man sollte doch eher mit c++ anfangen IMHO.



  • Shade Of Mine schrieb:

    nimm als beispiel mal einen String. Nun willst du davon einen NonCaseString ableiten der nicht auf gross/klein schreibung achtet.

    klingt gut?

    falsch, ist eine katastrophe:
    denn definiere mal den op== und op= dafuer 😉

    Wer kommt denn auch da auf die Idee zu vererben?



  • Ok aber wo gibt es einen Kostenlosen C++ Editor?

    mfg phill



    • Du willst nur Klassenkamerade beeindrucken mit deinem Programm ?
      -> C# ist deine Wahl
    • Du willst das ganze professionell durchziehen ?
      -> Fang mit C++ an, eigne dir einen vernünftigen Stil an und guck dir nach einem
      Jahr oder auch zwei C# an.
    • Du willst eher ein Hobbyprogrammierer werden ?
      -> Nimm sofort die Sprache deiner Wahl, und kümmer dich erstmal nicht um die andre.

    C# IDEs:
    SharpDevelop
    Visual C# 2005 Express Beta 1
    Borland C# Builder Personal Edition

    C++ IDEs:
    MinGW Studio 2.05
    Visual C++ 2005 Express Beta 1
    Bloodshed Dev-C++

    grüße,
    ein Pokemon



  • Michael E. schrieb:

    Wer kommt denn auch da auf die Idee zu vererben?

    Was ist los mit euch?

    Es macht ja eben _keinen_ sinn von einem value Typen zu erben. Darum geht es doch in meinem Posting!

    Es ist aber verlockend fuer Anfaenger da zu erben. Wenn man da ein sealed macht, kann das einem Anfaenger nicht passieren und darum geht es in Java und C# ja -> ein Anfaenger darf keine Fehler machen koennen.



  • Shade Of Mine schrieb:

    Wenn man da ein sealed macht, kann das einem Anfaenger nicht passieren und darum geht es in Java und C# ja -> ein Anfaenger darf keine Fehler machen koennen.

    ein noob kann aber trotzdem klassen basteln von denen man keine sinnvollen ableitungen machen kann. wenn er kein 'sealed' oder 'final' verwendet (und noobs verwenden das auch nicht), helfen ihm java und c# auch nicht weiter.

    btw: in c++ geht doch 'class B : public A' immer. da gibbets keine sealed/final -entsprechung. besser für noobs 😉
    oder geht das doch irgendwie?



  • So also für das Visual C++ 2005 brauche ich das Framework 2.0 hab ich aber nicht gesehen auch nicht bei Microsoft.

    mfg Phill



  • Shade Of Mine schrieb:

    du hast sowieso grosse probleme wenn du von bestimmten typen ableitest:

    nimm als beispiel mal einen String. Nun willst du davon einen NonCaseString ableiten der nicht auf gross/klein schreibung achtet.

    klingt gut?

    nein, aber...

    denn definiere mal den op== und op= dafuer 😉

    wo ist dabei denn das problem?



  • Phill schrieb:

    So also für das Visual C++ 2005 brauche ich das Framework 2.0 hab ich aber nicht gesehen auch nicht bei Microsoft.

    Dann such bitte nochmal!
    Oder ist es wirklich so schwer bei google ".NET Framework 2.0" einzugeben?



  • Noodles schrieb:

    Oder ist es wirklich so schwer bei google ".NET Framework 2.0" einzugeben?

    ich glaub um den '.' in .NET schert sich google herzlich wenig, aber das sollte egal sein


Anmelden zum Antworten