ist es möglich...

M

matzeed7

Mitglied
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?
 
Warum nimmst du nicht einfach std::list oder std::vector?
 
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
 
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.
 
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.

Dem kann ich nur mehr als zustimmen.

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.

Ja, und Bananen sind nachts grüner als Toastbrot.
 
na ja wie auch immer,
danke erst mal für eure hilfe
 
supersucker schrieb:
supersucker
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.
Dem kann ich nur mehr als zustimmen.
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.
Ja, und Bananen sind nachts grüner als Toastbrot.

: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...
 
@ 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.
 
matzeed7 schrieb:
Nun kann ich die Rückgabe
in eine Struktur leiten und umgehe somit die Zeigersyntax, die ja net
erlaubt war.

... yeahhh. Starkes KungFu.
Na Hauptsache es hat funktioniert xD

MfG
 

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

CentOS 6.3 RADIUS - Keine Verbindung möglich

Windows clients können nicht mehr auf lange laufendes System zugreifen

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Zurück
Oben