User Tools

Site Tools


cpp:object_creation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
cpp:object_creation [2017/05/10 05:24] – [Παράδειγμα αρχικοποίησης δεικτών] gthanoscpp:object_creation [2017/05/10 05:51] – [Παράδειγμα αρχικοποίησης δεικτών] gthanos
Line 151: Line 151:
 ===== Παράδειγμα αρχικοποίησης δεικτών ===== ===== Παράδειγμα αρχικοποίησης δεικτών =====
  
-Παρακάτω δίνεται ένα παράδειγμα αρχικοποίησης των τριών δεικτών r1, r2, r3 τύπου //Rectangle//, οι οποίοι αρχικοποιούνται ως εξής:+Παρακάτω δίνεται η κλάση //Rectangle// και ένα παράδειγμα αρχικοποίησης των τριών δεικτών r1, r2, r3 τύπου //Rectangle//, οι οποίοι αρχικοποιούνται ως εξής:
   - ο δείκτης //r1// δείχνει στο αντικείμενο rect.   - ο δείκτης //r1// δείχνει στο αντικείμενο rect.
   - ο δείκτης //r2// δείχνει σε ένα αντικείμενο που αρχικοποιείται στο //heap//.   - ο δείκτης //r2// δείχνει σε ένα αντικείμενο που αρχικοποιείται στο //heap//.
   - ο δείκτης //r3// δείχνει σε ένα πίνακα από αντικείμενα που αρχικοποιείται επίσης στο //heap//.   - ο δείκτης //r3// δείχνει σε ένα πίνακα από αντικείμενα που αρχικοποιείται επίσης στο //heap//.
   - για τα //r2, r3// είμαστε υποχρεωμένοι να ελευθερώσουμε τη μνήμη που δεσμεύτηκε στο //heap// κατά τη δημιουργία των αντικειμένων.   - για τα //r2, r3// είμαστε υποχρεωμένοι να ελευθερώσουμε τη μνήμη που δεσμεύτηκε στο //heap// κατά τη δημιουργία των αντικειμένων.
 +
 +<code cpp Rectangle.cpp>
 +#include <iostream>
 +using namespace std;
 +
 +class Rectangle {
 +  private:
 +    int width, height;
 +  public:
 +    Rectangle(int w, int h);
 +    Rectangle(int s);
 +    Rectangle();
 +    int getWidth() const;
 +    int getHeight() const;
 +    void setWidth(int w);
 +    void setHeight(int h);
 +    int getArea() const;
 +};
 +
 +Rectangle::Rectangle(int w, int h): width(w), height(h) {}
 +Rectangle::Rectangle(int s) : width(s), height(s) {}
 +Rectangle::Rectangle(): width(0), height(0) {}
 +
 +int Rectangle::getWidth() const { return width;}
 +int Rectangle::getHeight() const { return height;}
 +void Rectangle::setWidth(int w) { width = w; }
 +void Rectangle::setHeight(int h) { height = h; }
 +int Rectangle::getArea() const { return width*height;}
 +</code>
  
 <code cpp RectangleUsage.cpp> <code cpp RectangleUsage.cpp>
Line 163: Line 192:
  
 int main() { int main() {
-  Rectangle rect{3, 4};+  Rectangle rect {3, 4};
   Rectangle *r1, *r2, *r3;   Rectangle *r1, *r2, *r3;
   r1 = &rect;   r1 = &rect;
-  r2 = new Rectangle {5, 6};+  r2 = new Rectangle {5, 6};
   r3 = new Rectangle[2] { {4,8}, {7,3} };   r3 = new Rectangle[2] { {4,8}, {7,3} };
-  cout << "rect'area: " << obj.area() << endl; +  cout << "rect'getArea: " << rect.getArea() << endl; 
-  cout << "*r1'area: " << foo->area() << endl; +  cout << "*r1'getArea: " << r1->getArea() << endl; 
-  cout << "*r2'area: " << bar->area() << endl; +  cout << "*r2'getArea: " << r2->getArea() << endl; 
-  cout << "r3[0]'area:" << baz[0].area() << endl; +  cout << "r3[0]'getArea:" << r3[0].getArea() << endl; 
-  cout << "r3[1]'area:" << baz[1].area() << endl;       +  cout << "r3[1]'getArea:" << r3[1].getArea() << endl;       
   delete r2;   delete r2;
   delete[] r3;   delete[] r3;
cpp/object_creation.txt · Last modified: 2021/05/07 06:22 (external edit)