Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

O Pointer this σαν argument

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Erevis
Δημοσιεύσεις: 56
Εγγραφή: 12 Ιουν 2008 16:31
Τοποθεσία: Χαλάνδρι

O Pointer this σαν argument

Δημοσίευση από Erevis » 23 Απρ 2009 17:10

Καλησπέρα σε όλους, μπαίνω αμέσως στο ψητό, έχω μια class, που αντιπροσωπεύει ένα forum, η οποία σαν private members έχει έναν pointer προς το parent forum(αν δεν υπάρχει δείχνει στο NULL),το ID του και ένα vector της class αυτής ο οποίος περιέχει τα subforums.

Ο constructor της forum δέχεται σαν arguments το όνομά του,το ID του και έναν pointer o οποίος δείχνει στο parent forum.

Επίσης εχει μια μέθοδο, newSubforum η οποία δέχεται σαν arguments το όνομα και το ID ενός forum και καταχωρεί στον vector το subforum. Όταν δημιουργείται το subforum σ'αυτή τη μέθοδο, σαν argument στον constructor του subforum στέλνω τον this, για να κάνει initialize στον parent.

Το πρόβλημα που προκύπτει είναι πως όταν προσπαθώ να χρησιμοποιήσω τον parent το πρόγραμμα κρεμαέι. Έχω δοκιμάσει να εκτυπώσω τον this μέσα στη newSubforum και τον parent στον constructor και μου βγάζει την ίδια διεύθυνση μνήμης.


Κώδικας: Επιλογή όλων

 

//to _parent exei san default argument to NULL
forum::forum(int _ID,const char *_name,forum *_parent)
{
    ID = _ID;
    strcpy(name,_name);
    parent = _parent;
    lastSubForumID = -1;
}

void forum::newSubforum(int _ID,const char *_name)
{  
    forum temp(_ID,_name,this);
    subforums.insert(subforums.end(),temp);
    lastSubForumID = _ID;
}

Έχει κανείς ιδέα για το τί μπορεί να φταίει? :-?

Άβαταρ μέλους
bxenos
Δημοσιεύσεις: 53
Εγγραφή: 18 Αύγ 2008 19:56

O Pointer this σαν argument

Δημοσίευση από bxenos » 23 Απρ 2009 18:17

Βαλε περισσότερο κώδικα (την δηλωση του class forum και μια main() με τις δοκιμες σου).
Υπάρχει περίπτωση να μπερδεύεις stack με heap και να κανεις corruption το vector. Αλλα μονο με τις δυο συναρησεις που παραθετεις δεν βγάζω ακρη. Το this δεν βλεπω να εχει προβλημα.

Erevis
Δημοσιεύσεις: 56
Εγγραφή: 12 Ιουν 2008 16:31
Τοποθεσία: Χαλάνδρι

O Pointer this σαν argument

Δημοσίευση από Erevis » 23 Απρ 2009 22:37

Ενταξει το βρήκα το πρόβλημα, δεν τσέκαρα για NULL στις δοκιμές και κρέμαγε επειδή τα πρώτα forums δεν είχαν parent ! Ευχαριστώ για την απάντηση :D

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες