warum benutzt ihr c++?



  • Hi,

    z.B. das Hantieren mit Zeigern, Zeiger auf Zeiger, Zeigerarithmetik etc. Die Syntax ist ja wohl kaum intuitiv oder schön.

    Sowas gibt es zwar in C++ auch, aber zumindest kann man das ein oder andere Mal statt eines normalen Zeigers entweder einen SmartPointer nehmen, oder manchmal Referenzen. Je nach Anwedungsfall. Und wenn man eine Referenz benutzt, muss man diese sofort initialisieren, also fällt schonmal eine oft vorkommende Fehlerquelle weg.

    Ferner finde ich Funktionsüberladung sehr praktisch, das hat C nicht. Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.



  • CarstenJ schrieb:

    Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.

    Objektorientierung in C++ ist sehr rudimentär.



  • CarstenJ schrieb:

    Hi,

    z.B. das Hantieren mit Zeigern, Zeiger auf Zeiger, Zeigerarithmetik etc. Die Syntax ist ja wohl kaum intuitiv oder schön.

    Sowas gibt es zwar in C++ auch, aber zumindest kann man das ein oder andere Mal statt eines normalen Zeigers entweder einen SmartPointer nehmen, oder manchmal Referenzen. Je nach Anwedungsfall. Und wenn man eine Referenz benutzt, muss man diese sofort initialisieren, also fällt schonmal eine oft vorkommende Fehlerquelle weg.

    Ferner finde ich Funktionsüberladung sehr praktisch, das hat C nicht. Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.

    SmartPointer vermisse ich in C ebenfalls. Waere eine sehr nuetzliche Erweiterung. Ausserdem vermisse ich ebenso Referenzen und Funktionsueberladung.

    Ebenso vermisse ich Klassen und Templates in C 🤡



  • C-fan schrieb:

    CarstenJ schrieb:

    Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.

    Objektorientierung in C++ ist sehr rudimentär.

    Was fehlt den C++ (und eben Php5, siehe Thread bei Web) zur OOP?
    - Vererbung, Kapselung und Laufzeitpolymorphie. Dies bietet C++ und Php5. Der Rest ist doch nur eine Designfrage der Sprache.



  • DEvent schrieb:

    Was fehlt den C++[...]?

    http://c2.com/cgi/wiki?AreDesignPatternsMissingLanguageFeatures



  • c2dotcom schrieb:

    DEvent schrieb:

    Was fehlt den C++[...]?

    http://c2.com/cgi/wiki?AreDesignPatternsMissingLanguageFeatures

    Ja das fehlt C++ vielleicht, aber das hat gar nichts, aber auch nichts, mit OOP zu tun. OOP ist ein Sammelbegriff fuer Techniken die, u.a., es erlaubt diese Patterns zu implementieren. MultiMethods, MetaClass, GenericFunktions, usw... sind doch voellig andere Techniken.

    Aber es ist ein interessanter Artikel, und ich gebe den Autoren Recht, dass Designs Patterns features einer Sprache nachimplementieren. Aber sie sind noetig, denn sonst haben wir eine zu aufgeblaete Sprache mit 1000 von Techniken.



  • DEvent schrieb:

    OOP ist ein Sammelbegriff fuer Techniken die, u.a., es erlaubt diese Patterns zu implementieren.

    Unfug! Mit Techniken hat das nichts zu tun.
    http://en.wikipedia.org/wiki/Object-oriented_programming



  • C-fan schrieb:

    CarstenJ schrieb:

    Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.

    Objektorientierung in C++ ist sehr rudimentär.

    Kannst du auch was Sinnvolles beitragen, oder nur rumflamen? Achja, war ja dein Ziel....



  • Ich finde nicht das die OOP rudimentär ist, besonders weil sie dafür, dass sie funktionslos sein soll, doch recht ausgeprägt ist.



  • DEvent schrieb:

    c2dotcom schrieb:

    DEvent schrieb:

    Was fehlt den C++[...]?

    http://c2.com/cgi/wiki?AreDesignPatternsMissingLanguageFeatures

    Ja das fehlt C++ vielleicht, aber das hat gar nichts, aber auch nichts, mit OOP zu tun. OOP ist ein Sammelbegriff fuer Techniken die, u.a., es erlaubt diese Patterns zu implementieren. MultiMethods, MetaClass, GenericFunktions, usw... sind doch voellig andere Techniken.

    Aber es ist ein interessanter Artikel, und ich gebe den Autoren Recht, dass Designs Patterns features einer Sprache nachimplementieren. Aber sie sind noetig, denn sonst haben wir eine zu aufgeblaete Sprache mit 1000 von Techniken.

    Design Patterns implementieren keine Sprachfeatures nach. Es sind einfach Ideen wie man Probleme einfach lösen kann und den Code wartbar hält. Design Patterns sind allgemein und nicht sprachabhängig, auch wenn viele immer ein Beispiel in einer bestimmten Sprache suchen. Das einige Sprachen Features haben, die diese Probleme auch lösen, ist einfach normal.



  • Interessant ist doch, das viele Design Patterns in C++ mit direkten (...) Sprachmitteln umgesetzt werden können...

    ...was man von anderen Sprachen ja nicht behaupten kann 😃



  • ajcPanther schrieb:

    Interessant ist doch, das viele Design Patterns in C++ mit direkten (...) Sprachmitteln umgesetzt werden können...
    ...was man von anderen Sprachen ja nicht behaupten kann 😃

    Welche anderen Sprachen kennst du denn noch? Ich möchte behaupten, daß die meisten anderen Sprachen, welche OOP unterstützen, es besser machen als C++.



  • Pooh schrieb:

    ajcPanther schrieb:

    Interessant ist doch, das viele Design Patterns in C++ mit direkten (...) Sprachmitteln umgesetzt werden können...
    ...was man von anderen Sprachen ja nicht behaupten kann 😃

    Welche anderen Sprachen kennst du denn noch? Ich möchte behaupten, daß die meisten anderen Sprachen, welche OOP unterstützen, es besser machen als C++.

    Definiere "besser".



  • OOPabst schrieb:

    DEvent schrieb:

    OOP ist ein Sammelbegriff fuer Techniken die, u.a., es erlaubt diese Patterns zu implementieren.

    Unfug! Mit Techniken hat das nichts zu tun.
    http://en.wikipedia.org/wiki/Object-oriented_programming

    Aus Wiki:

    It is based on several techniques, including inheritance, modularity, polymorphism, and encapsulation.

    klar, mit Techniken hat das gar nichts zu tun... 🤡



  • Nö wieso auch 😃
    Ich bin der Meinung, dass alle die behaupten OOP in C++ wäre scheiße, kennt C++ GAR nicht bis fast GAR nicht.



  • Ich benutze C++, weil man in meinem derzeitigen Arbeitsbereich (VLSI-Designtools) noch auf jedes Bit Speicherverbrauch und auf jeden Taktzyklus schauen muss.



  • hä???? schrieb:

    Basingstoke schrieb:

    In diesem Zusammenhang wollte mal fragen warum es verdammt nochmal
    keine Sprache gibt die Definitionen UND Implementationen vererben
    kann.

    was soll das bedeuten?

    Ich will einfach nur Interfaces in C++ (und nicht abstrakte Basis-Klassen)



  • Wenn Du mir erklärst, wo hier der OO-bezogene Unterschied von:

    interface Dummy
    {
     public:
       virtual void foo() = 0;
    };
    

    zu

    class Dummy
    {
     public:
       virtual void foo() = 0;
    };
    

    ist?

    Ich wüsste jetzt nicht, warum wir ein Schlüsselwort interface bräuchten? Namen sind Schall und Rauch...



  • Artchi schrieb:

    Ich wüsste jetzt nicht, warum wir ein Schlüsselwort interface bräuchten? Namen sind Schall und Rauch...

    Du identifizierst dich aber stark mit C++. :p

    Man könnte sich "public" und dieses komische "= 0;" sparen. Ist von der bedeutung her einfach schöner.



  • Artchi schrieb:

    Ich wüsste jetzt nicht, warum wir ein Schlüsselwort interface bräuchten? Namen sind Schall und Rauch...

    Wozu class wenn es auch struct gibt?


Anmelden zum Antworten