madas Δημοσ. 22 Απριλίου 2011 Δημοσ. 22 Απριλίου 2011 παιδια εχω φτιαξει αυτη τη λιστα που κανει καποιες βασικες λειτουργιες >#include<iostream> class linklist{ private: struct node{ int data; node *link; }*p; public: linklist(); ~linklist(); void addend(int num); void addbeg(int num); void addafter(int c,int num); void del(int num); void display(); }; using namespace std; int main() { linklist list; cout<<endl; list.addbeg(11); list.addbeg(834); list.addbeg(187); list.addbeg(7); list.addbeg(1); list.addend(1 ); list.addafter(0,330); list.display(); return 0; } void linklist::addbeg(int num) { node *q; //add newnode q=new node; q->data=num; q->link=p; p=q; } void linklist::addafter(int c,int num) { node *q,*t; int i; q=p; for (i=0;i < c;i++) { q=q->link; if(q==NULL) { cout<<"there is no such node existing:"<<endl; return; } } t=new node; t->data=num; t->link=q->link; q->link=t; } void linklist::addend(int num) { node *q,*t; //if the list is empty if(p==NULL) { p=new node; p->data=num; p->link=NULL; } else { q=p; while(q->link!=NULL) q=q->link; t=new node; t->data=num; t->link=NULL; q->link=t; } } void linklist:: del(int num) { node *q,*r; q=p; //if node to be deleted is the first node if (q->data==num) { p=p->link; delete q; return; } r=q; while(q!=NULL) { if(q->data==num) { r->link=q->link; delete q; return; } r=q; q=q->link; } } void linklist::display() { node *q; cout<<endl; for(q=p;q!=NULL;q=q->link) cout<<" "<<q->data; } οταν κανω compile μου βγαζει οτι ολα ειναι ενταξει, οταν ομως παω να το τρεξω μου πεταει "undefined reference to 'linklist::linklist()'" "undefined reference to 'linklist::~linklist()'" τι ακριβως ειναι αυτο??? παιζει καποιο προβλημα με τις βιβλιοθηκες?????
MeTaXaS4 Δημοσ. 22 Απριλίου 2011 Δημοσ. 22 Απριλίου 2011 αυτά τα 2 είναι λίγο πολύ τα πιο σημαντικά κομμάτια μιας κλάσης είναι ο δημιουργός και ο καταστροφέας και με το μήνυμα που σου βγάζει σου λέει ότι δεν έχεις ορίσει δημιουργό και καταστροφέα
madas Δημοσ. 22 Απριλίου 2011 Μέλος Δημοσ. 22 Απριλίου 2011 αυτά τα 2 είναι λίγο πολύ τα πιο σημαντικά κομμάτια μιας κλάσης είναι ο δημιουργός και ο καταστροφέας και με το μήνυμα που σου βγάζει σου λέει ότι δεν έχεις ορίσει δημιουργό και καταστροφέα και πως θα το κανω αυτο??????
παπι Δημοσ. 22 Απριλίου 2011 Δημοσ. 22 Απριλίου 2011 και πως θα το κανω αυτο?????? Στη c πως θα εκανες το list_create και list_delete ;
madas Δημοσ. 22 Απριλίου 2011 Μέλος Δημοσ. 22 Απριλίου 2011 Στη c πως θα εκανες το list_create και list_delete ; man μπορεις να μου δειξεις λιγο πως γινεται???? γιατι δυστυχως δεν το κατεχω και πολυ το αθλημα...
παπι Δημοσ. 22 Απριλίου 2011 Δημοσ. 22 Απριλίου 2011 >class linkedlist { .... public: linkedlist() : p(NULL) { } ~linkedlist() { //delet'em all!!! } }; }
madas Δημοσ. 22 Απριλίου 2011 Μέλος Δημοσ. 22 Απριλίου 2011 >class linkedlist { .... public: linkedlist() : p(NULL) { } ~linkedlist() { //delet'em all!!! } }; } Thanxxxx man!!!!!!! ;)
xrisp Δημοσ. 23 Απριλίου 2011 Δημοσ. 23 Απριλίου 2011 Το σφάλμα μάλλον προέκυψε κατά το linking, και σημαίνει πως έχεις μεν δηλώσει έναν constructor και έναν destructor, αλλά δεν τα έχεις υλοποιήσει πουθενά. Είναι το ίδιο πράγμα με το να δηλώνεις μια συνάρτηση και να μην την υλοποιείς πουθενά. Γενικά πάντως δεν είναι απαραίτητο να κάνεις δικό σου κενό constructor/destructor αν δεν το χρειάζεσαι, θα μπορούσες πχ. να έσβηνες τις παρακάτω γραμμές από τον αρχικό κώδικά σου: > linklist(); ~linklist();
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.