• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
August 06, 2026, 09:12:15 am

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
August 06, 2026, 09:12:15 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Αποτελέσματα Εξεταστικής ...
by abunchofcells
[August 05, 2026, 23:33:23 pm]

Πότε θα βγει το μάθημα; -...
by Cloud Strife
[August 04, 2026, 14:41:31 pm]

Των συνειρμών το παίγνιο....
by χηρουλα Αλεξίου
[August 03, 2026, 22:24:18 pm]

[Τεχνολογία Λογισμικού] Ν...
by Tasos Bot
[August 03, 2026, 16:22:06 pm]

[Επιχειρησιακή Έρευνα Ι] ...
by Tasos Bot
[August 03, 2026, 15:53:12 pm]

[Αρχές Οικονομίας] Να επι...
by Tasos Bot
[August 03, 2026, 14:55:39 pm]

Νευρωνικά Δίκτυα - Βαθιά...
by Tasos Bot
[August 02, 2026, 15:14:15 pm]

[ΑΣΗΕ] Να επιλέξω το μάθη...
by Tasos Bot
[August 02, 2026, 14:41:37 pm]

[Βιοϊατρική Τεχνολογία] Ν...
by Tasos Bot
[August 02, 2026, 14:04:22 pm]

[Τεχνικές Βελτιστοποίησης...
by Tasos Bot
[August 02, 2026, 13:45:14 pm]

[Λειτουργικά Συστήματα] Ν...
by Tasos Bot
[August 02, 2026, 13:22:10 pm]

[Ανάλυση Δεδομένων] Να επ...
by Tasos Bot
[August 02, 2026, 12:49:25 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Ponan
[August 02, 2026, 00:17:27 am]

Πρόγραμμα επαναληπτικής ε...
by Nikos_313
[August 01, 2026, 22:47:39 pm]

Τα παράσιτα ανάμεσά μας
by χηρουλα Αλεξίου
[July 31, 2026, 18:49:30 pm]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[July 30, 2026, 17:01:28 pm]

Μεταπτυχιακό στο EPFL
by Nikos_313
[July 30, 2026, 14:24:35 pm]

Οδύσσεια
by mdimitrig
[July 30, 2026, 09:53:33 am]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[July 29, 2026, 21:50:10 pm]

Προσκεκλημένοι στην τελετ...
by okan
[July 28, 2026, 14:46:07 pm]
Στατιστικά
Members
Total Members: 10415
Latest: anasim
Stats
Total Posts: 1431799
Total Topics: 32029
Online Today: 524
Online Ever: 18918
(April 06, 2026, 16:05:31 pm)
Users Online
Users: 5
Guests: 424
Total: 429
hacky
nmpampal
Σβέλτο Φτυάρι
jimalexoud
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Για ανανέωση (ή προσθήκη νέου) avatar, πρέπει η μεγαλύτερη διάσταση της εικόνας να είναι 110 pixels.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: RivenT, tony stank) > [C++] Άσκηση 5 - 2015/2016 Προθεσμία 14/11/2015 11:00 μμ
0 Members and 1 Guest are viewing this topic.
Pages: 1 [2] Go Down Print
Author Topic: [C++] Άσκηση 5 - 2015/2016 Προθεσμία 14/11/2015 11:00 μμ  (Read 3934 times)
Apostolof
WebSlave
Αbsolute ΤΗΜΜΥ.gr
***
Gender: Male
Posts: 2660


Κεραυνοί, φωτιές, ece


View Profile WWW
Re: [C++] Άσκηση E - 2015/2016 Προθεσμία 14/11/2015 11:00 μμ
« Reply #15 on: November 14, 2015, 15:15:57 pm »

Quote from: LordOdy on November 14, 2015, 14:35:31 pm
Quote from: Tolis _tmo_ on November 14, 2015, 14:22:17 pm
Quote from: electric67 on November 14, 2015, 14:07:24 pm
γενικά είναι καλό να βάζω στο πρόγραμμα όλες τις συναρτήσεις get και set;

Κατά τη γνώμη μου όχι. Όταν έχεις ένα μέλος κλάσης private και συναρτήσεις set και get ψιλό-χάνεις το νόημα του private σκέλους, καλύτερα δήλωσε το μέλος public και γλύτωσε ένα τόνο κώδικα από setters και getters. Ούτως ή άλλως τα private μέλη αποσκοπούν στη περιορισμένη πρόσβαση, γιατί να έχεις συναρτήσεις set;

Πάντως από ότι έχω διαβάσει οι απόψεις διίστανται, είναι υποκειμενικό το θέμα δεν υπάρχει ξεκάθαρα καλύτερη πρακτική.

Public πεδία είναι γενικά ΑΠΑΓΟΡΕΥΤΙΚΑ στην C++ και γενικά στον αντικειμενοστραφή προγραμματισμό , δεν είναι θέμα γνώμης , είναι θέμα design (βλ αρχή του encapsulation). Οπότε, αν θες να είσαι τυπικά σωστός βάζε getters setters όπου χρειάζεται. Επίσης που είδες ότι οι απόψεις διίστανται ??

Δεν λέω ότι τα public πεδία είναι καλός προγραμματισμός. Λέω ότι η μέθοδος private member-setter + getter είναι εξίσου κακός για εμένα. Πάνω σε αυτό διίστανται οι απόψεις. Πως προστατεύεις τα private members σου αν έχεις setters;
Για το που το είδα δε μπορώ να απαντήσω τώρα είμαι από κινητό και βράζουμε τσίπουρα  Grin Grin
« Last Edit: November 15, 2015, 12:54:41 pm by Tolis _tmo_ » Logged

All these moments will be lost in time, like tears in rain.
In the meanwhile, life goal.
LordOdy
Νεούλης/Νεούλα
*
Posts: 30


View Profile
Re: [C++] Άσκηση E - 2015/2016 Προθεσμία 14/11/2015 11:00 μμ
« Reply #16 on: November 14, 2015, 15:24:27 pm »

Quote from: Tolis _tmo_ on November 14, 2015, 15:15:57 pm
Quote from: LordOdy on November 14, 2015, 14:35:31 pm
Quote from: Tolis _tmo_ on November 14, 2015, 14:22:17 pm
Quote from: electric67 on November 14, 2015, 14:07:24 pm
γενικά είναι καλό να βάζω στο πρόγραμμα όλες τις συναρτήσεις get και set;

Κατά τη γνώμη μου όχι. Όταν έχεις ένα μέλος κλάσης private και συναρτήσεις set και get ψιλό-χάνεις το νόημα του private σκέλους, καλύτερα δήλωσε το μέλος public και γλύτωσε ένα τόνο κώδικα από setters και getters. Ούτως ή άλλως τα private μέλη αποσκοπούν στη περιορισμένη πρόσβαση, γιατί να έχεις συναρτήσεις set;

Πάντως από ότι έχω διαβάσει οι απόψεις διίστανται, είναι υποκειμενικό το θέμα δεν υπάρχει ξεκάθαρα καλύτερη πρακτική.

Public πεδία είναι γενικά ΑΠΑΓΟΡΕΥΤΙΚΑ στην C++ και γενικά στον αντικειμενοστραφή προγραμματισμό , δεν είναι θέμα γνώμης , είναι θέμα design (βλ αρχή του encapsulation). Οπότε, αν θες να είσαι τυπικά σωστός βάζε getters setters όπου χρειάζεται. Επίσης που είδες ότι οι απόψεις διίστανται ??

Δεν λέω ότι τα public πεδία είναι καλός προγραμματισμός. Λέω ότι η μέθοδος private member-setter + getter είναι εξίσου κακός για εμένα. Πάνω σε αυτό διίστανται οι απόψεις. Πως προστατεύεις τα private members σου αν έχεις setters;
Για το που το είδα δε μπορώ να απαντήσω τώρα είμαι από κινητό και βάζουμε τσίπουρα  Grin Grin

Σε αυτή την trivial περίπτωση φαίνεται ανούσιο , το καταλαβαίνω. Πες όμως πως θες να βάλεις έναν έλεγχο στην set (πχ μην δέχεσαι τιμές πάνω απο 100 κλπ) . Εκεί αρχίζει και φαίνεται η αναγκαιότητα του encapsulation. Οπότε , από το να λες καθε φορά "Βρε λες να το βάλω Public , το ίδιο είναι",απλά ακολουθείς το design choice και έχεις το κεφάλι σου ήσυχο. Η λογική είναι ότι μια κλάση (και κατ'επεκταση ένα αντικείμενο αυτής) είναι η μόνη υπεύθυνη για τον χειρισμό της μεταβλητής , για να γλυτώνεις περρίσιο κώδικα κλπ κλπ. Καλα τσίπουρα  Cheesy
Logged
Apostolof
WebSlave
Αbsolute ΤΗΜΜΥ.gr
***
Gender: Male
Posts: 2660


Κεραυνοί, φωτιές, ece


View Profile WWW
Re: [C++] Άσκηση E - 2015/2016 Προθεσμία 14/11/2015 11:00 μμ
« Reply #17 on: November 15, 2015, 13:13:56 pm »

Quote from: LordOdy on November 14, 2015, 15:24:27 pm
Quote from: Tolis _tmo_ on November 14, 2015, 15:15:57 pm
Quote from: LordOdy on November 14, 2015, 14:35:31 pm
Quote from: Tolis _tmo_ on November 14, 2015, 14:22:17 pm
Quote from: electric67 on November 14, 2015, 14:07:24 pm
Σε αυτή την trivial περίπτωση φαίνεται ανούσιο , το καταλαβαίνω. Πες όμως πως θες να βάλεις έναν έλεγχο στην set (πχ μην δέχεσαι τιμές πάνω απο 100 κλπ) . Εκεί αρχίζει και φαίνεται η αναγκαιότητα του encapsulation. Οπότε , από το να λες καθε φορά "Βρε λες να το βάλω Public , το ίδιο είναι",απλά ακολουθείς το design choice και έχεις το κεφάλι σου ήσυχο. Η λογική είναι ότι μια κλάση (και κατ'επεκταση ένα αντικείμενο αυτής) είναι η μόνη υπεύθυνη για τον χειρισμό της μεταβλητής , για να γλυτώνεις περρίσιο κώδικα κλπ κλπ. Καλα τσίπουρα  Cheesy

Ξαναλέω δε τίθεται θέμα αν τα public πεδία είναι καλός προγραμματισμός, γιατί απλά συμφωνώ ότι δεν είναι. Το θέμα είναι αν θα πρέπει κάθε μεταβλητή να έχει μια setter και μια getter συνάρτηση. Ειδικά setter πιστεύω ότι δε πρέπει να έχει και μάλιστα καλό θα είναι να αποφεύγεται όπου είναι δυνατόν.

http://www.artima.com/intv/goldilocks2.html
Bjarne Stroustrup: "Going to the big class hierarchy is again, you write more code than you need to, and you get too much connection between different parts. I particularly dislike classes with a lot of get and set functions. That is often an indication that it shouldn't have been a class in the first place. It's just a data structure. And if it really is a data structure, make it a data structure."

http://typicalprogrammer.com/doing-it-wrong-getters-and-setters/
“Python is not Java” Phillip J. Eby: "Getters and setters are evil. Evil, evil, I say! Python objects are not Java beans. Do not write getters and setters. This is what the ‘property’ built-in is for. And do not take that to mean that you should write getters and setters, and then wrap them in ‘property’. That means that until you prove that you need anything more than a simple attribute access, don’t write getters and setters."

Επίσης ούτε η c++ είναι η java.

Καλά ήταν τα τσίπουρα!! Cheesy
Logged

All these moments will be lost in time, like tears in rain.
In the meanwhile, life goal.
Pages: 1 [2] Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...