aris92 Δημοσ. 22 Νοεμβρίου 2012 Δημοσ. 22 Νοεμβρίου 2012 Καλησπέρα και πάλι, δεν μπορώ να καταλάβω που έχω λάθος στον παρακάτω κώδικα. Καταρχάς να σας πω τι θέλω να κάνω Θέλω μια public συνάρτηση Shape::setPoint(int n, Point p) η οποία θέτει στο nth(1η παράμετρος) σημείο του σχήματος(ένα πίνακας είναι) το σημείο p που δίνεται σαν 2η παράμετρος. (Point είναι μια άλλη κλάση) Η συνάρτηση μου είναι η εξής void Shape::setPoint(int x,Point po) { if(x<=n && x>0) //κάνω έναν έλεγχο { pin[x-1] = po; } else { cout<<"Warning:point number out of range \n"; και από την main την καλώ ως εξής s2.setPoint(1,c); //όπου s2 αντικείμενο της Shape και c αντικείμενο της Point ωστόσο δεν μου κάνει την αντιμετάθεση. Μπορείτε να μου πείτε τι φταίει? thnks!
barca10 Δημοσ. 22 Νοεμβρίου 2012 Δημοσ. 22 Νοεμβρίου 2012 Δεν μας δίνεις όλον τον κώδικα μπας και βγάλουμε άκρη; ωστόσο δεν μου κάνει την αντιμετάθεση. Τι θες να κάνεις αντιμετάθεση; Δεν βλέπω καμιά αντιμετάθεση στο κομμάτι κώδικα που έδωσες.
aris92 Δημοσ. 22 Νοεμβρίου 2012 Μέλος Δημοσ. 22 Νοεμβρίου 2012 λοιπόν ο κώδικας είναι αυτός //5890 #include <iostream> #include <cstring> using namespace std; class Point{ public: double x,y; Point(double a, double {x=a; y=b;}; Point(){x=0; y=0;}; }; class Shape{ int n; //ari8mos shmeiwn Point *pin; //pinakas me tis suntetagmenes public: Shape(int o,Point *p); Shape(){cout<<"Warning: shape has no points \n";}; void setPoint(int x,Point po); void set(int y,Point* pi); void printPoints(); }; Shape::Shape(int o,Point *p) { n=o; pin = new Point[o]; for(int i=0;i<o;i++) { pin=p; } } void Shape::setPoint(int x,Point po) { if(x<=n && x>0) { pin[x-1] = po; } else { cout<<"Warning:point number out of range \n"; } } void Shape:: set(int y,Point* pi) { if(y>0) { delete[]pin; n=y; pin = new Point[y]; for(int i=0;i<y;i++) { pin=pi; } } } void Shape::printPoints() { for(int i=0;i<n;i++) { cout<<(i+1)<<""<<pin.x<<","<<pin.y<<")"<<" "; } cout<<"\n"; } int main () { int n; Point a(0.3,0.5),c(2,7),d(3,5),b(12,17); cout<<"Dwste ton ari8mo twn shmeiwn \n"; cin>>n; Point *points; points = new Point[n]; points[0]=a; points[1]=b; points[2]=c; points[3]=d; Shape s2(n,points); s2.setPoint(1,c); s2.set(3,points); s2.printPoints(); //cout<<"x="<<a.x<<"\n"; //cout<<"y="<<a.y<<"\n"; //delete points; system("pause"); return 0; } Αυτό που μου ζητάει είναι Υλοποιήστε την public συνάρτηση Shape::set(int m , Point* p) η οποία αναθέτει σε ένα σχήμα τα m σημεία (1η παράμετρος) του πίνακα (2η παράμετρος), αντικαθιστώντας όλα τα σημεία του σχήματος Shape. pin[x-1] = po; //σε αυτό το σημείο δεν θα έπρεπε να κάνει την αντικατάσταση?
albNik Δημοσ. 22 Νοεμβρίου 2012 Δημοσ. 22 Νοεμβρίου 2012 Ναι αλλά τελικά ξαναβάζεις τα 3 πρώτα points , μήπως να γράψεις το setPoint μετά. > Shape s2(n,points); s2.setPoint(1,c); s2.set(3,points); s2.printPoints();
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα