• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
August 02, 2025, 18:30:52 pm

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 02, 2025, 18:30:52 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Αποτελέσματα Εξεταστικής ...
by Ma8hths Indou
[Today at 17:30:47]

[Τηλεπικοινωνιακά Συστήμα...
by Thanasis_pap
[Today at 17:06:37]

Άδεια ασκήσεως επαγγέλματ...
by The Web
[Today at 13:25:49]

[Τομέας Ηλεκτρονικής] Μαθ...
by Nikos_313
[Today at 09:51:26]

[Τομέας Ενέργειας] Μαθήμα...
by Nikos_313
[Today at 01:40:22]

Οι μπράβοι του πρύτανη
by Διάλεξις
[Today at 01:30:18]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[Today at 01:04:15]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by Διάλεξις
[Today at 00:59:05]

Ηλεκτρομηχανολογικές Μελέ...
by inverter
[August 01, 2025, 20:35:12 pm]

Νέα Δημοκρατία (and Co. I...
by Katarameno
[August 01, 2025, 15:13:09 pm]

Πρόγραμμα Σπουδών Ακαδημα...
by PolarBear
[August 01, 2025, 15:03:05 pm]

Aναζωπύρωση των εχθροπραξ...
by Katarameno
[July 31, 2025, 21:15:48 pm]

Καμμένα...!!
by Godat
[July 31, 2025, 21:07:58 pm]

[ΑΝΤΙΣΤΑΣΗ] Ανακοίνωση γι...
by Katarameno
[July 31, 2025, 20:31:30 pm]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[July 31, 2025, 15:33:28 pm]

ΤΗΜΜΥ-Σκάκι
by L
[July 31, 2025, 13:24:56 pm]

Τι ακούτε αυτήν τη στιγμή...
by Giopan
[July 30, 2025, 17:07:32 pm]

Τα παράσιτα ανάμεσά μας
by Katarameno
[July 30, 2025, 13:47:28 pm]

Ρώτα κάτι τον επόμενο
by Giopan
[July 29, 2025, 16:04:23 pm]

Πότε θα βγει το μάθημα; -...
by chatzikys
[July 29, 2025, 13:52:51 pm]
Στατιστικά
Members
Total Members: 9988
Latest: kyrlef
Stats
Total Posts: 1427644
Total Topics: 31739
Online Today: 142
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 18
Guests: 71
Total: 89
aris123321
filkilkis
gpapadimi
Giannis Masterio
mprizakias
johnnypap
Σβέλτο Φτυάρι
Pcsc
astra
mara.mlch
PrincessConsuela
kst
VeGGoS
Katarameno
Εμφάνιση

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

Νέα!
  Όταν ανεβάζουμε φωτογραφίες στις Ανακοινώσεις και Έκτακτα νέα, βάζουμε τη μεγαλύτερη πλευρά 400 (width=400 ή height=400 ). π.χ. [img height=400 (κλείνει η αγκύλη) 
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > [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 2724 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...