Gewissensfrage korrekturen



  • Hi,

    ich wollte mal fragen was ihr davon hält wenn man Anmerkungen zu Profs. Folien abgibt. Sollte man das machen?

    Ich bin jedenfalls alle Folien durchgegangen und habe pedantisch alles ausprobiert.. jedoch zwecks Prüfungsvorbereitung. Daneben habe ich ein paar Bücher != J. Wolf durchgeschaut so dass ich mir bei allem sicher bin.

    Einerseits will ich zeigen dass dort etwas nicht stimmt und dass ich es verstehe andererseits habe ich morgen die Klausur und ich möchte nicht in eine Schublade gesteckt werden.

    Bsp. Auszug:
    structs vs. class
    -alles public
    -kein oop
    -keine methoden
    -keine operatoren
    -keine vererbung
    Nur POD

    Ich weiß dass es auch ganz schön nach hinten gehen kann. Würdet ihr es anmerken?



  • gewissen schrieb:

    Bsp. Auszug:
    structs vs. class
    -alles public
    -kein oop
    -keine methoden
    -keine operatoren
    -keine vererbung
    Nur POD

    Und wie wäre es richtig?



  • Ich würde sagen nur ein Unterschied, alles default public?!



  • gewissen schrieb:

    Ich würde sagen nur ein Unterschied, alles default public?!

    Stimmt. Aber mit OOP kriegt er Dich am Popo.
    Er definiert, was OOP ist und sobald man nur struct verwendet, ist es eben nicht OOP.
    Da kannste auch nicht widersprechen.
    Spätestens der Richter wird dem Prof glauben und nicht einem Studenten, der das Thema gerade von jenem Prof lernen soll.

    Ich schätze, eine Klausur ist nicht der richtige Ort, um eine Diskussion zu beginnen.
    Die Fehler, die Du im Skript nachweisen kannst, die solltest Du normalerweise auch schreiben. Blöd wird's, wenn er was nur gesagt hat und in der Klausur auf einmal anders bewertet als seine Rede war. Sowas wie "-keine methoden" ist leicht genug zu verteidigen, daß Du Dich trauen kannst. Aber selbst das kann schädlich sein. Wenn DU vorne fünfmal so einfache Sachen "falsch" machst, wird er hinten davon ausgehen, daß Du schlecht bist und Sätze zu Deinen Ungunsten interpretieren und weniger Punkte rausrücken. Wohlgemerkt aus Versehen, davor kann sich kaum einer beim Bewerten schützen.

    Bei irgendwas, was sonnenkllar ist, kannste ja mal ein "Und da war ein Fehler auf der Folie" schreiben. Das wird ihn vermutlich freuen, wie fleißig Du doch gelernt hast, um das überhaupt bemerken zu können. Aber mehr als einmal würde ich mich nicht trauen. Die Klausur ist erstmal nur dazu da, daß Du eine 1 abzockst.



  • Danke für den Tipp, dann gehe ich nach der Note auf ihn zu. Es sind gedruckte Folien die er allen Studis zur Verfügung stellt.

    Solange die Sprache (bei den Studis) noch nicht sitzt prägen sich Dinge schnell ein die man später nur sehr schwer ablegt... Deswegen möchte ich es dass er es evtl. ändert.



  • naja, das was da zu structs steht ist so nicht ganz richtig :p

    structs können in C++ sehr wohl Methoden bekommen.
    Ebenso kann man für structs Operatoren überladen.
    Auch können structs von anderen structs erben.
    Es ist sogar möglich dass eine Klasse von einem struct erbt.
    (ob es auch umgekehrt geht, weiß ich jetzt allerdings nicht :p)

    Beispielsweise werden Schnittstellen in C++ gerne als structs definiert, eben wegen default-public.
    Manche Leute sind eben zu faul, das public extra hinzuschreiben^^

    Du kannst Strukturen übrigens auch einen Konstruktor geben usw.

    Zu deiner eigentlichen Frage, ob es sinnvoll ist, dem Prof sowas zu sagen....

    Wir kennen deinen Prof garantiert nicht so gut wie du 😉
    Ob man jemand höhergestellten auf Fehler hinweisen kann, wie man das tun sollte usw. hängt sehr von der jeweiligen Person ab.
    Also im Zweifelsfall würde ich auf Nummer sicher gehen und die Klappe halten 😉

    MfG DrakoXP



  • DrakoXP schrieb:

    naja, das was da zu structs steht ist so nicht ganz richtig :p

    gewissen hat ja schon das Richtige gesagt: Der einzige Unterschied zwischen struct und class besteht darin, dass bei ersterem alles standardmässig public ist.

    DrakoXP schrieb:

    Beispielsweise werden Schnittstellen in C++ gerne als structs definiert, eben wegen default-public.
    Manche Leute sind eben zu faul, das public extra hinzuschreiben^^

    Hab ich jetzt noch nie gesehen. Viel häufiger sind meiner Meinung nach z.B. Funktoren und ungekapselte Datenbündel.



  • Es ist sogar noch viel schöner:

    Es gibt drei Schlüsselworte (sog. class-keys), die Klassen definieren: "class", "struct" und "union". Alle so deklarierten Datentypen sind Klassen (!), nur halt verschiedene Arten. Eine structure (mit "struct" deklarierte Klasse) hat als besondere Eigenschaft nur, dass Member und Basisklassen per Default public sind (wie hier schon gesagt wurde), eine Union zeichnet sich zusätzlich dadurch aus, dass sie nur einen Datenmember zur selben Zeit hat.

    Es gibt ein paar weitere Einschränkungen bei Unions (im Wesentlichen, dass Unions mit Vererbung nichts am Hut haben), aber die Basisfunktionalität einer Klasse ist bei all diesen Klassentypen vorhanden. Folgendes ist gültiges C++:

    #include <iostream>
    
    int main() {
      union foo_union {
        foo_union(int x) : x(x) { }
        foo_union(char c) : c(c) { }
    
        int  get_int () const { return x; }
        char get_char() const { return c; }
    
        void set_int (int  new_x) { x = new_x; }
        void set_char(char new_c) { c = new_c; }
    
      private:
        int x;
        char c;
      } u(1);
    
      std::cout << u.get_int() << std::endl;
      u.set_char('A');
      std::cout << u.get_char() << std::endl;
    }
    

    Einen Destruktor habe ich hier nicht geschrieben, möglich wäre es aber auch. Das muss man sich mal auf der Zunge zergehen lassen.



  • Nexus schrieb:

    DrakoXP schrieb:

    Beispielsweise werden Schnittstellen in C++ gerne als structs definiert, eben wegen default-public.
    Manche Leute sind eben zu faul, das public extra hinzuschreiben^^

    Hab ich jetzt noch nie gesehen.

    Wir machen das genau so. 😉



  • Ebenfalls. Ein public/private am Anfang der Klasse sieht komisch aus.

    @Topic: Ich würde den PRofessor wahrscheinlich in Grund und Boden flamen. Aber an deiner Stelle würde ich das lassen.



  • Meinen Professorem hätte ich soetwas ohne Bedenken sagen können. Kommt halt immer auf den einzelnen Mensch an ...



  • gewissen schrieb:

    Ich weiß dass es auch ganz schön nach hinten gehen kann. Würdet ihr es anmerken?

    Was soll da nach hinten losgehen? Würdest du lieber in der Klausur wissentlich etwas falsches schreiben, um keine Punktabzüge zu bekommen?

    Wenn die Klausur heute ist, ist es natürlich ein bisschen spät für solche Anmerkungen ...

    314 schrieb:

    Ich würde den PRofessor wahrscheinlich in Grund und Boden flamen.

    Das würde ich lassen, man sieht sich bekanntlich immer zweimal, und er sitzt am längeren Hebel.



  • Ich kenne mich aus. Da kann er sich ärgern so viel er will.



  • DrakoXP schrieb:

    Es ist sogar möglich dass eine Klasse von einem struct erbt.
    (ob es auch umgekehrt geht, weiß ich jetzt allerdings nicht :p)

    Da struct und class abgesehen von default-public das selbe sind gehts auch umgekehrt.

    -alles public
    -keine methoden
    -keine operatoren
    -keine vererbung
    Nur POD

    Ist in C++ alles falsch, wie schon gesagt wurde. In C ist das was anderes, C-Structs sind immer C++-PODs, public/private, operatorüberladung, Methoden und Vererbung gibts in C nicht.

    -kein oop

    Ist nicht nur in C++ sondern auch in C falsch. Man kann selbst in C mit structs OOP-Stil programmieren, auch wenn man dann drauf achten muss, dass man sich daran hält - die Sprache kanns nicht erzwingen.
    Ein Beispiel für etwas, was in C durchaus als objektorientiert bezeichnet werden darf sind die FILE Operationen aus stdio (fopen, fread & Co).
    OOP muss nicht zwangsläufig Vererbung, Polymorphie und Co. beinhalten, ein geschlossener Satz Operationen und Funktionen auf einem opaquen Typen ist schon eine Form der Objektorientierung.



  • Er gibt dir die Noten. Da kannst du ihn so viel flamen wie du willst.



  • Ich kann auch zu höheren Instanzen wegen unfähiger Lehrer gehen. Da kann er mir Noten geben so viel er will.



  • 314159265358979 schrieb:

    Ich kann auch zu höheren Instanzen wegen unfähiger Lehrer gehen. Da kann er mir Noten geben so viel er will.

    Da wirst du aber zu kämpfen haben. Ich sehe die Erfolgschancen eher als gering an, auch wenn du handfeste Beweise seiner Unfähigkeit hast (allerdings in Form von ein paar Fehlern, die man in fast jeder Foliensammlung findet).



  • Das mag sein.



  • Vor allem wird er vermutlich nicht unfähig sein, sondern ein Experte für Datenbankoptimierung, Künstliche Intelligenz oder Kryptographie, der dieses Jahr bei der Verlosung der Anfängervorlesung den kürzeren gezogen hat.



  • Das entschuldigt keinen fehlerhaften Unterricht.


Anmelden zum Antworten