Graphische Oberflächen in C



  • mmh, wenn du c kannst, dann ist es doch ein ganz kleiner schritt so ein konstrukt anzuwenden!

    class foo : foo_foo
    {
      private:
        //irgendwas
    
      public:
        foo(foo_foo *paren = 0);
    
        //member
    };
    


  • ich verdamme diese tastatur, die batterien gehen zu neige, sorry!
    korrektur:
    "parent...."



  • gentoo schrieb:

    mmh, wenn du c kannst, dann ist es doch ein ganz kleiner schritt so ein konstrukt anzuwenden!

    Das würde ich so nicht unterschreiben. Sicher, es ist kein großer Akt, mal ne Klasse abzuleiten, aber C++ erfordert vom Programmierer eine ganz andere Denkweise als C. C++ ist mehr als C + Vererbung. Daher wäre ich schon vorsichtig mit solchen Aussagen.

    Allerdings teile ich die Meinung, für Desktop - Applikationen mit GUI C++ zu verwenden. Das setzt aber auch voraus, dass man die Sprache beherrscht. Tut man dies nicht, wird ein Programm mit GUI unweigerlich im Chaos versinken (das gilt immer, egal in welcher Sprache oder Toolkit). Denn GUI verkompliziert die ganze Geschichte ungemein. V.a. wenn man das Model View Controller Konzept umsetzen will, was gar nicht so einfach ist.

    MfG

    GPC



  • naja, meine ersten programme versanken auch immer im chaos, da ich einfach drauf los geschrieben habe... aber nach einiger zeit, bzw. nach dem 2. größeren projekt lernt man aus seinen fehlern und macht auch schon die ein oder andere skizze...
    aber so kompliziert ist es nicht. ich meine ich mache das ganze auch nur freizeitmäßig und bin kein profi (ich habe alles in der freien tzeit, die man als schüler so hatte, gelernt), aber c++ ist kaum mehr als eine auf klassen bezogene abart von c. das ermöglicht wiederum eine sehr gekapselte problemlösung. setzt jedoch den schritt voraus, vorher drüber nachzudenken, was eine klasse tun soll und wie eine andere klasse von ihr informationen bekommt.

    achso, mich würde noch interessieren, ob es in c strukturen gibt? ich kann mir sonst nicht erklären warum es diese in c++ noch gibt? die sind doch komplett sinnfrei, oder etwa nicht?



  • achso, mich würde noch interessieren, ob es in c strukturen gibt?

    Ja:

    typedef struct Foo {
      int bar;
    };
    
    Foo f;
    f.bar = 7;
    

    ich kann mir sonst nicht erklären warum es diese in c++ noch gibt? die sind doch komplett sinnfrei, oder etwa nicht?

    Sie erfüllen den gleichen Zweck wie Klassen, nur dass alle Member per default public sind, anstatt private wie bei class. Erstens wegen der Rückwärtskompatibilität drin und zweitens sind sie praktisch, wenn man wirklich *nur* einen Datensatz darstellen möchte, ohne gleich ne vollwertige Klasse schreiben zu müssen.

    MfG

    GPC



  • was heißt gleich vollwertig, eine klasse braucht auch nur noch ein "public:" und erfüllt den selben zweck! es gibt eigentlich kein grund beides zu haben! entweder ein aufgemotztes struct oder keins!



  • gentoo schrieb:

    was heißt gleich vollwertig, eine klasse braucht auch nur noch ein "public:" und erfüllt den selben zweck!

    Mit vollwertig meinte ich nicht die semantische Vollwertigkeit, sondern dass, wenn ich eine Klasse (mit class) schreibe, auch noch getter, setter, Konstruktoren usw. reinkommen. Bei struct hingegen belasse ich es bei den Datenmembern, die public sind. Ein einfacher Datensatz halt, nicht mehr, nicht weniger.

    es gibt eigentlich kein grund beides zu haben! entweder ein aufgemotztes struct oder keins!

    Das C++ struct ist aufgemotzt, denn es erlaubt im Gegensatz zum C-struct folgendes:

    struct Foo {
      int bar() const { return -1; }
    };
    

    Das geht in C nicht. struct hat imho in C++ seine Daseinsberechtigung. Allein schon wegen der Rückwärtskompatibilität zu C.

    MfG

    GPC



  • @topic
    Im Übrigen hab ich gerade ein Binding von wxWidgets zu C gefunden: http://sourceforge.net/projects/wxc/

    MfG

    GPC



  • wie soll das funktionieren... wxwidgets beruht auf klassen und c++ kennt nur funktionen und, naja... structs, enums, etc...

    wie kann es funktionieren, da das ganze auf c zu verschieben wo doch nur funktionenen existieren dürften?!
    wie funktionieren, bzw. was sind bindings zu einem framework?



  • gentoo schrieb:

    wie soll das funktionieren... wxwidgets beruht auf klassen und c++ kennt nur funktionen und, naja... structs, enums, etc...

    du meinst sicher C, das nur Funktionen usw. kennt 😉

    wie kann es funktionieren, da das ganze auf c zu verschieben wo doch nur funktionenen existieren dürften?!

    Man wrappt die Geschichte, so gut es geht. Viel wurde mit Sicherheit auch refaktoriert, da C ja keine Klassen kennt. wxWidgets nutzt z.B. keine namespaces, das macht die Sache schon einfacher.

    wie funktionieren, bzw. was sind bindings zu einem framework?

    Ein Binding ist einfach eine Schnittstelle, die aufgebaut wird, um mit einer Sprache auf eine API zuzugreifen, die dafür ursprünglich nicht vorgesehen war (siehe z.B. Gtk-Binding für Python und Ruby).

    Diese ganzen Libs sind ja OpenSource, schau doch mal rein, wenn dich der genaue Aufbau interessiert.

    MfG

    GPC


Anmelden zum Antworten