ICheats Δημοσ. 17 Νοεμβρίου 2013 Δημοσ. 17 Νοεμβρίου 2013 (επεξεργασμένο) EDIT: Το πρόβλημα λύθηκε Ευχαριστώ πολύ για τη βοήθειά σας!! Καλησπέρα, Ασχολούμαι με ένα project στο οποίο έχω δημιουργήσει δύο classes! Η μία class(ας την ονομάσουμε Α) έχει κάποιες public member functions μέσα της και η άλλη(ας την ονομάσουμε Β) έχει ένα private array και κάποιους accessors για τα πεδία του array! Αρχικοποιώ λοιπόν ένα object μέσα στον constructor της class Β, και θέτω με αυτό τον τρόπο τα πεδία του array: B::myArray[5][6] = { A_obj.function_one, //.... και πάει λέγοντας }; Το πρόβλημα όμως είναι, ότι στο compilation μου πετάει σφάλμα στις γραμμές με τα πεδία του array, και λέει ότι το A_obj δεν βρέθηκε... Παρόλα αυτά περνάει τη γραμμή στην οποία αρχικοποιώ το object. Και μάλιστα άμα καλέσω μία function για τεστάρισμα ( αν καταφέρνει να περάσει από εκεί) , δουλεύει μια χαρά! Τι πρόβλημα μπορεί να υπάρχει? Επίσης, αυτή τη στιγμή δεν μπορώ να δώσω τον κώδικα γιατί θα πρέπει να κάνω αρκετές μετατροπές και αυτό μπορεί να προκαλέσει σφάλματα... Ευχαριστώ! EDIT: Το πρόβλημα λύθηκε Ευχαριστώ πολύ για τη βοήθειά σας!! Επεξ/σία 22 Νοεμβρίου 2013 από ICheats
Rorsach Δημοσ. 18 Νοεμβρίου 2013 Δημοσ. 18 Νοεμβρίου 2013 Θα δοκίμαζα 1. Να φτιάξω μια setter method και να την καλώ στον constructor 2. Να χρησιμοποιήσω τη σύνταξη class A { private myArray[2][2] A(): myArray({{1,2},{3,4}}) {} } Τώρα για το τι πρόβλημα υπάρχει και εγώ τώρα μαθαίνω c++ οπότε δεν μπορώ να σε βοηθήσω παραπάνω σε αυτό.
nucleus Δημοσ. 18 Νοεμβρίου 2013 Δημοσ. 18 Νοεμβρίου 2013 Θέλει να ορίσεις ένα πεδίο τύπου class A μέσα στην class B και να το αρχικοποιήσεις μέσα στον constuctor της Β με new().
ICheats Δημοσ. 18 Νοεμβρίου 2013 Μέλος Δημοσ. 18 Νοεμβρίου 2013 Παιδιά, σας ευχαριστώ και τους δύο για τη γρήγορη απάντησή σας, μα δεν μπορώ να καταλάβω τι ακριβώς προσπαθείτε να κάνετε... Ειδικότερα: Θέλει να ορίσεις ένα πεδίο τύπου class A μέσα στην class B και να το αρχικοποιήσεις μέσα στον constuctor της Β με new(). Δεν μπορώ να καταλάβω τι μου συστήνεις να κάνω και πώς να το εκφράσω σε κώδικα... Θα δοκίμαζα 1. Να φτιάξω μια setter method και να την καλώ στον constructor 2. Να χρησιμοποιήσω τη σύνταξη class A { private myArray[2][2] A(): myArray({{1,2},{3,4}}) {} } Τώρα για το τι πρόβλημα υπάρχει και εγώ τώρα μαθαίνω c++ οπότε δεν μπορώ να σε βοηθήσω παραπάνω σε αυτό. Δεν γνωρίζω τι ακριβώς έχεις κάνει στη γραμμή με τον κώδικα: A(): myArray({{1,2},{3,4}}) {}
nucleus Δημοσ. 19 Νοεμβρίου 2013 Δημοσ. 19 Νοεμβρίου 2013 public class A { //κώδικας της A } public class B { private A myAObject; //constructor της Β public B() { myAObject = new A(); } //συνάρτηση της Β που χρησιμοποιεί το myAObject public bFunction() { myAObject.[όνομα μεθόδου από την Α] } } Για δοκίμασε έτσι
ICheats Δημοσ. 20 Νοεμβρίου 2013 Μέλος Δημοσ. 20 Νοεμβρίου 2013 public class A { //κώδικας της A } public class B { private A myAObject; //constructor της Β public B() { myAObject = new A(); } //συνάρτηση της Β που χρησιμοποιεί το myAObject public bFunction() { myAObject.[όνομα μεθόδου από την Α] } } Για δοκίμασε έτσι Ευχαριστώ, το καταλαβαίνω τώρα, απλά έχω μια απορία! Δεν θα'πρεπε το myObject να είναι pointer? Το δοκίμασα σαν pointer και διορθώθηκαν κάτι σφάλματα!! Ανεξάρτητα από αυτό, o compiler μου πετάει error: qualifiers can only be specified for objects and functions
παπι Δημοσ. 20 Νοεμβρίου 2013 Δημοσ. 20 Νοεμβρίου 2013 Ποσταρε αυτο που εχεις κανει μπας και βγαλουμε ακρη. Ο κωδικας του nucl ειναι c# ή java.
ICheats Δημοσ. 20 Νοεμβρίου 2013 Μέλος Δημοσ. 20 Νοεμβρίου 2013 Ποσταρε αυτο που εχεις κανει μπας και βγαλουμε ακρη. Ο κωδικας του nucl ειναι c# ή java. Συγγνώμη αλλά δεν μπορώ να το κάνω αυτό, γιατί θα πρέπει να κάνω αρκετές αλλαγές και να αποκαλύψω κώδικα ο οποίος δεν είναι δικός μου και δεν μου επιτρέπεται!
παπι Δημοσ. 20 Νοεμβρίου 2013 Δημοσ. 20 Νοεμβρίου 2013 Τουλαχιστον προσπαθησε να δωσεις μια περιγραφη της προκοπης.
ICheats Δημοσ. 20 Νοεμβρίου 2013 Μέλος Δημοσ. 20 Νοεμβρίου 2013 (επεξεργασμένο) Τουλαχιστον προσπαθησε να δωσεις μια περιγραφη της προκοπης. Λοιπόν, όπως το έχω αυτή τη στιγμή, είναι κάπως έτσι: class A { //κώδικας της A }; class B { private: A *myAObject; //άλλαξα από κανονικό object σε pointer to object public: B() { myAObject = new A(); } //συνάρτηση της Β που χρησιμοποιεί το myAObject void bFunction() { myAObject -> [όνομα μεθόδου από την Α] } }; το πρόβλημα προκύπτει στη γραμμή όπου γράφει: myAObject = new A(); και είναι το εξής error: qualifiers can only be specified for objects and functions Επεξ/σία 21 Νοεμβρίου 2013 από ICheats
παπι Δημοσ. 20 Νοεμβρίου 2013 Δημοσ. 20 Νοεμβρίου 2013 Βαλε ερωτηματικα στο τελος της καθε κλασεις. Επισης η bFunction πρεπει να επιστρεφει και κατι, εστω και void 1
ICheats Δημοσ. 20 Νοεμβρίου 2013 Μέλος Δημοσ. 20 Νοεμβρίου 2013 Βαλε ερωτηματικα στο τελος της καθε κλασεις. Επισης η bFunction πρεπει να επιστρεφει και κατι, εστω και void Σωστά!! Το διορθώνω!!
nucleus Δημοσ. 21 Νοεμβρίου 2013 Δημοσ. 21 Νοεμβρίου 2013 Βασικά δεν έχω ιδέα τι είναι μάλλον για C# μου φέρνει Αφού άλλαξες το object σε pointer το myAObject.[όνομα μεθόδου από την Α] είναι λάθος δεν πρέπει να γίνει myAObject->[όνομα μεθόδου από την Α]? Σε dev-c++ το παρακάτω κάνει compile και run #include <stdio.h> class A { public: void testfunc() { printf("called testfunc ths class A"); } }; class B { private: A *myAObject; public: B() { myAObject = new A(); } public: void bFunction() { myAObject->testfunc(); } }; int main() { B *bObjectPointer = new B(); bObjectPointer->bFunction(); return 0; }
ICheats Δημοσ. 21 Νοεμβρίου 2013 Μέλος Δημοσ. 21 Νοεμβρίου 2013 Βασικά δεν έχω ιδέα τι είναι μάλλον για C# μου φέρνει Αφού άλλαξες το object σε pointer το myAObject.[όνομα μεθόδου από την Α] είναι λάθος δεν πρέπει να γίνει myAObject->[όνομα μεθόδου από την Α]? Σε dev-c++ το παρακάτω κάνει compile και run #include <stdio.h> class A { public: void testfunc() { printf("called testfunc ths class A"); } }; class B { private: A *myAObject; public: B() { myAObject = new A(); } public: void bFunction() { myAObject->testfunc(); } }; int main() { B *bObjectPointer = new B(); bObjectPointer->bFunction(); return 0; } Μπορεί, πάντως το βελάκι δεν είναι το πρόβλημα, το διόρθωσα. Επίσης με g++ μου κάνει compile και run κι εμένα!! Περίεργο!!
nucleus Δημοσ. 22 Νοεμβρίου 2013 Δημοσ. 22 Νοεμβρίου 2013 Ποιό περιβάλλον χρησιμοποιείς,σε αυτό δεν κάνει build και run το sample που έγραψα παραπάνω?
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα