ΠάρηςΓ Δημοσ. 7 Μαΐου 2009 Δημοσ. 7 Μαΐου 2009 Παιδες αντιμετωπίζω προβλημα.... Εχω φτιάξει μια συναρτηση να εμφανιζει στην οθόνη μια linkedMatrix όπως θέλω. Αλλα θελω να κάνω να κάνει πρόσθεση... ¨Ολα καλά εκτός του ότι έχω πρόβλημα όταν επιστρέφω το αποτέλεσμα.. Εδω ειναι η συνάρτηση γι ατη προσθεση κάνει overload τον τελεστή +... friend LinkedMatrix<T> operator+ (LinkedMatrix<T> &l, LinkedMatrix<T> &r) { μπλα μπλα μπλα cout << C; return C; } Το πρόβλημα είναι οτι εδώ όταν κάνω cout << C δουλεύει άψογα.. Αλλά αν το κάνω απο τη main ... int _tmain(int argc, _TCHAR* argv[]) { LinkedMatrix<int> A, B, C; cin >> A; cout << "Matrix A ine" << endl << A; cin >> B; cout << "Matrix B ine" << endl << B; C= A+B; cout << C; EDO KRASARI... μου βγαζει οτι εχει προβλημα με τους δεικτες μετα... getchar(); getchar(); } Δοκίμασα να επιστρέφω δείκτη κτλ κ αλλα κόλπα αλλα warnings οτι επιστρέφω τοπικη μεταβλητη κτλ.. Καμιά ιδέα;
bxenos Δημοσ. 7 Μαΐου 2009 Δημοσ. 7 Μαΐου 2009 αυτό το μπλά-μπλα έχει σημασία: >friend LinkedMatrix<T> operator+ (LinkedMatrix<T> &l, LinkedMatrix<T> &r) { μπλα μπλα μπλα cout << C; return C; } πως εχει δεσμευτεί χωρος για την C στην operator; αν αντί για count << C, βάλεις count << (A+ κάνει το ίδιο;
ΠάρηςΓ Δημοσ. 7 Μαΐου 2009 Μέλος Δημοσ. 7 Μαΐου 2009 Τωρα τελικα δε μπορω να το δοκιμάσω.. Κρασαρει το προγραμα χωρις να μπορω να βρω γιατι... Εντωμεταξύ ολοκληρωνετε κανονικά η συνάρτηση αλλα στο τελος κρασαρει χωρις να φαινεται το γιατι
bxenos Δημοσ. 7 Μαΐου 2009 Δημοσ. 7 Μαΐου 2009 Έχει copy contstructor το template LinkedMatrix; Βάλε το template και την συνάρτηση εδώ αν θέλεις να τα συζητησουμε. Πάντως οι διάφορες Linked List (αν είναι τέτοια) δεν έχουν δυνατότητα αντιγραφής, αρα δεν μπορείς να κάνεις return C. Θα μπορουσες να κάνεις > void Add(LinkedMatrix<T> &C,const LinkedMatrix<T> &l, const LinkedMatrix<T> &r) { μπλα μπλα μπλα }
ΠάρηςΓ Δημοσ. 8 Μαΐου 2009 Μέλος Δημοσ. 8 Μαΐου 2009 bxenos ... Πια κομμάτια να κάνω ακριβώς πάστε; Δηλαδή λες οτι δεν γίνεται να επιστρέψω μια συνδεδεμενη λιστα με δεικτες άρα να βάλω καλύτερα μια add? Αν το βαλω add κ εγω πιστευω θα δουλέψει αλλα επειδη το + ήταν πιο κυριλέ..
3c0r1z Δημοσ. 9 Μαΐου 2009 Δημοσ. 9 Μαΐου 2009 Πάρη, είσαι σίγουρος ότι το πρόβλημα σου είναι στον operator+; Όπως είπε και ο bxenos το μπλά παίζει σημασία τι είναι. Σε πολλά σημεία θα μπορούσε ο κώδικας να παρουσιάζει απρόβλεπτη συμεριφορά όπως στους operator<<, templated copyconstructor και assignment operator κλπ. Αν δεσμεύεις δυναμικά μνήμη θέλουν πολλή προσοχή ο copycon και assignop όπως έγραψα παραπάνω. Επειδή είναι πάρα πολλά τα σημεία ίσως είναι καλύτερα να δείξεις λίγο παραπάνω κώδικα, please σε php-tags για να είναι ευκολότερη η ανάγνωση του κώδικα.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.