ist es möglich...

Dieses Thema im Forum "C/C++" wurde erstellt von matzeed7, 16.04.2007.

  1. #1 matzeed7, 16.04.2007
    matzeed7

    matzeed7 Mitglied

    Dabei seit:
    28.10.2006
    Beiträge:
    38
    Zustimmungen:
    0
    eine Liste in C++ zu erzeugen,

    ohne direkt mit pointern zu arbeiten. Meine Klassen sehen wie folgt aus:

    [cpp]
    class list{

    listenelement *first;
    listenelement *last;
    ...
    }

    class listenelement{
    int elementennummer;
    listenelement *next;
    }
    [/cpp]

    nun benötige ich methoden die nur einen int als rückgabewert zulassen bzw methoden in dem ein konstruktor aufgerufen werden kann. stellt sich nun die frage ob es möglich ist, so eine liste zu erzeugen. kann man denn einfach einen pointer als int und dann wieder als pointer umwandel?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Mµ*e^13.5_?¿, 16.04.2007
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Warum nimmst du nicht einfach std::list oder std::vector?
     
  4. #3 matzeed7, 16.04.2007
    matzeed7

    matzeed7 Mitglied

    Dabei seit:
    28.10.2006
    Beiträge:
    38
    Zustimmungen:
    0
    mein problem ist die umgebung von woaus ich die methoden/funktionen aufrufen
    kann, da sind so sachen wie int *p; int * add(...); nicht möglich.

    ich könnte es nur in eine funktion kapseln und diese dann aufrufen

    zb void addElement(......){
    liste.push_back(1);
    }

    das problem dabei ist nur das ausserhalb die "liste" ja nicht bekannt ist und ich keinen zeiger auf die liste definieren kann. die grundstrucktur aus der die
    funktionen aufgerufen werden sollen ist ein AST der nur Attribute mit standardtypen zulässt so können also nur diese "einfachen Typen" durch den Baum
    propagiert werden aus diesem grund sind keine pointer möglich

    also ich habe zu beginn eine init() funktion in der


    C/C++ Code:
    void initLIST(string name){
    cout<<"init " <<name <<endl;
    myLIST *neuList= new myLIST(name);

    }


    mein neuer listenkopf erzeugt wird. möchte ich aber nun in "neuList" ein neues
    Listenelement einfügen benötige ich eine add() funktion diese muss aber die liste kenne und das ist mein problem
    kann mir da wer helfen
     
  5. #4 Hello World, 20.04.2007
    Hello World

    Hello World Routinier

    Dabei seit:
    22.11.2006
    Beiträge:
    324
    Zustimmungen:
    0
    Abgesehen davon, dass man deinen Kauderwelsch kaum lesen geschweige denn verstehen kann, habe ich den Eindruck, dass Du keinen Schimmer hast, was Du da eigentlich tust.
     
  6. #5 supersucker, 20.04.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Dem kann ich nur mehr als zustimmen.

    Ja, und Bananen sind nachts grüner als Toastbrot.
     
  7. #6 matzeed7, 20.04.2007
    matzeed7

    matzeed7 Mitglied

    Dabei seit:
    28.10.2006
    Beiträge:
    38
    Zustimmungen:
    0
    na ja wie auch immer,
    danke erst mal für eure hilfe
     
  8. x0r

    x0r Bitschubser

    Dabei seit:
    20.12.2005
    Beiträge:
    169
    Zustimmungen:
    0
    Ort:
    Berlin
    :devil: ... wie krass ... :devil:

    ...hätte nicht auch ein dezenter Hinweis auf das, in diesem Zusammenhang wohl gemeinte Self-Problem und vielleicht noch ein, zwei Links, mit einer sanften Aufforderung zur Grundlagenvertiefung garniert, genügt ??! *schnell wegduck*

    MfG


    ahhh... ja die Links:

    http://wwwiti.cs.uni-magdeburg.de/i...ec/publications/Diplomarbeit-Rosenmueller.pdf
    C/C++ bezogen ...

    http://www1.cs.columbia.edu/~sedwards/classes/2007/w4115-spring/ast.pdf
    Allgemeine Sichtweise auf Abstrakte Syntaxbäume...
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 matzeed7, 21.04.2007
    matzeed7

    matzeed7 Mitglied

    Dabei seit:
    28.10.2006
    Beiträge:
    38
    Zustimmungen:
    0
    @ X0r

    Danke noch mal für Deine Bemühungen. Dein zweiter link beschreibt die
    Problematik recht gut. So wird zB auf der Folie der Seite 12 genau
    so ein AST Note beschrieben. Nur muss ich keinen ASTNote implementieren,
    sondern ihn mit Attributen versehen um dann mit Hilfe der Attributinhalte
    Berechnungnen durchzuführen.
    Also mit anderen Worten, durch das parsen einer Quellcodedatei wird mir ein AST
    aufgebaut. Nun kann ich durch meine eigenen Attribute den Inhalt der
    Quelle auswerten. Es leuchtet sicher ein, das man zur Auswertung seine
    eigenen C++ Funktionen verwenden möchte. Es ist nur so, das die zu vergebenden Attribute im AST einefache Datentypen sein können (zB int).
    Und diese dann durch den AST propagiert werden.

    Unter diesen Voraussetzungen stellte sich mir die Frage wie man seine eigene
    Listenimplementierung in den AST einbringen kann, ohne Zeiger auf die Listenelemente zu haben. Einfach nur mit der Möglichkeit int Werte als Rückgabetypen zu haben.




    Durch Tests habe ich aber herausbekommen das man im AST auch seine
    eigenen struct als Attribut verwenden kann. Nun kann ich die Rückgabe
    in eine Struktur leiten und umgehe somit die Zeigersyntax, die ja net
    erlaubt war.
     
  11. x0r

    x0r Bitschubser

    Dabei seit:
    20.12.2005
    Beiträge:
    169
    Zustimmungen:
    0
    Ort:
    Berlin
    ... yeahhh. Starkes KungFu.
    Na Hauptsache es hat funktioniert xD

    MfG
     
Thema:

ist es möglich...

Die Seite wird geladen...

ist es möglich... - Ähnliche Themen

  1. Nach Update debian 8 ist der Zugriff auf samba4 nicht möglich

    Nach Update debian 8 ist der Zugriff auf samba4 nicht möglich: Gerade habe ich debian mit dem Befehl "apt-get ugrade" aktualisiert. Es gab zahlreiche neue Daten unteranderen samba files. Nach neuem Start kann...
  2. Adapt ermöglicht Pakete anderer Distributionen bei Ubuntu

    Adapt ermöglicht Pakete anderer Distributionen bei Ubuntu: Im Januar stellte Ubuntu-Entwickler Dustin Kirkland auf einer Konferenz mit Adapt eine interessante Entwicklung vor, die nun in Ubuntu als PPA...
  3. Meizu weist auf mögliches neues Ubuntu Phone hin

    Meizu weist auf mögliches neues Ubuntu Phone hin: Meizu und Canonical haben im chinesischen Microbloggingdienst Weibo Hinweise auf eine gemeinsame Vorstellung beim nächste Woche stattfindenden...
  4. Webserver (über eigene WAN-IP-Adresse) nicht erreichbar - extern möglich

    Webserver (über eigene WAN-IP-Adresse) nicht erreichbar - extern möglich: Hallo zusammen, ich bastel hier gerade an einem Webserver, der über das Internet erreichbar ist. Am DSL-Router hängt jetzt der Webserver an als...
  5. Hyper-Projekt ermöglicht Nutzung von Docker-Images unter Hypervisoren

    Hyper-Projekt ermöglicht Nutzung von Docker-Images unter Hypervisoren: Das Hyper-Projekt der gleichnamigen chinesischen Firma vereint die Vorteile von leichtgewichtigen Docker-Containern mit denen von virtuellen...