klasse oder struct



  • hallo!

    ich möchte einen graphen mittels adjazenzliste implementieren. mit struct würde das etwa so aussehen:

    #define maxV 1000
    
    struct node {
        int v;
        struct node *next;
    }; //bitteschön ;)
    

    könnte ich statt struct auch class verwenden? und wie wäre das dann mit dem 2ten struct? wie würde das aussehen?

    und was ist der unterschied beim struct deklarieren?
    struct node *next; geht
    node *next; aber auch

    plz helft mir! sch bin verzweifelt 😃

    vielen dank.



  • Das Semikolon fehlt aber immer noch 😉



  • jaja, in gedanken hab ichs schon hinzugefügt 😃





  • Das zweite struct kannst Du einsparen, da er da den Typen schon kennt (obwohl das bei manchem Compiler auch nicht immer so war). Und Du kannst struct einfach durch class ersetzen, wenn Du anschließend noch ein public: unterbringst. Dann gibt es praktisch keinen Unterschied mehr.
    Warum hast Du's nicht einfach mal versucht? Der Compiler hätte schon gemeckert, wenn was nicht gegangen wäre... einfach versuchen, und dann mal nachlesen, was man angestellt hat, geht auch :xmas2:



  • graphen mittels adjazenzliste

    Ich weiß zwar ehrlich gesagt nicht was das heissen soll,

    aber wäre eine std::list<int> nicht einfacher ?



  • Knuddlbaer schrieb:

    graphen mittels adjazenzliste

    Ich weiß zwar ehrlich gesagt nicht was das heissen soll,

    aber wäre eine std::list<int> nicht einfacher ?

    keine ahnung, wie ich das machen müßte,bin noch nich lange mit c++ am rumwerkeln. is das vielleicht vc++?



  • http://c-plusplus.net/stl.htm

    Hier könnte sich ein Blick lohnen.

    Thema std::vector (auf den beziehen sich vermutlich viele Beispiel) , std::list und iteratoren .

    Generell ist aber die gesammte STL interesannt. Inkl. std::string.



  • NEIN! Da haben die Leute noch Probleme mit dem Einrichten des Compilers, und schon sollen sie in die STL gehen? Das ist Quatsch mit Soße!



  • hey! ich hab keine probleme mit meinem compiler!



  • Bitsy schrieb:

    NEIN! Da haben die Leute noch Probleme mit dem Einrichten des Compilers, und schon sollen sie in die STL gehen? Das ist Quatsch mit Soße!

    Also ich hab gern viel Soße bei meinem Quatsch. Is sonst so trocken 🤡

    Ich halte es für Sinvoller leute an die STL zu führen. Schau ich mir viele Quelltexte an die in reinem C von Anfängern gemacht wurden schauderts einem schon.
    Die STL macht einiges leichter. Warum lernen wie eine Liste intern Funktioniert ? Warum wissen müssen was der String intern macht ? Lass die leute doch erst mal den Einstieg finden. Ist es nicht natürlich das man erst ein Gerät benutzt und es dann später zerlegt wenn es einen Interessiert oder man die interna wissen muss ?

    Ich halte es zumindest so. Ich möchte meine Musik aus der Steroanlage hören. Dazu muss ich wissen wie man sie bedient. Ich muss mir keine selbst bauen. Auch muss ich sie nicht zerlegen. Sicherlich weiß ich, wenn ich genau weiß wie sie Funktioniert, sie optimal zu nutzen. Aber will ich das als HiFi Anfänger ? Warum beim Programmieren anderst halten ?



  • also ich WILL wissen, wie eine liste o.ä. intern funktioniert. sonst kommt sowas raus, daß man zB. nicht weiß, was ne adjazenzliste is. 😉

    aber zurück zum ursprungsproblem: mal angenommen, ich hab ne klasse gemacht (also struct durch class ersetzen) und bau nen konstruktor dafür. was is dann der unterschied zum struct? (speziell im bezug auf *next) wie wird das initialisiert, wenn ich das nicht selber mache?

    😕 😕 😕



  • [quote="D-U-D-E"]also ich WILL wissen, wie eine liste o.ä. intern funktioniert. sonst kommt sowas raus, daß man zB. nicht weiß, was ne adjazenzliste is. 😉

    Weisst Du denn wie Deine Festplatte im Detail Funktioniert ? Nein ? Du weisst aber bestimmt was eine Festplatte ist ?

    Was ich Deiner Strukt entnehme ist : einfach verkettete Liste. Ob "adjazenzliste" jetzt ein Synonym ist um sich ein wenig aufzuspielen oder technisch eine besonderheit bei der Implementierung hat weiß ich nicht. Zufällig weiß ich noch wie eine verkettete Liste arbeitet. Ich kenne aber den aufbau der std::list nicht im detail. Ich kann aber damit umgehen und wüsste keinen Vorteil die Interna komplett zu wissen.

    Fazit: Ich kann damit leben nicht zu wissen was eine adjazenzliste ist :-p

    struct test
    {
    
    };
    

    ist das gleiche wie

    class test
    {
    public:
    
    };
    

    Wenn das die Frage nicht beantwortet: Stell sie mal anderst.



  • Hi,

    ich schlage vor, du liest dir mal das durch: http://www.c-plusplus.net/forum/viewtopic.php?t=59437


Log in to reply