Topic CrossConnect

Panos panos at linuxuk.com
Thu Oct 3 17:19:01 EEST 2002


>Για να απαντήσω και στον Πάνο, τι είναι πιο ευανάγνωστο, γρήγορο, και λογικό;
>Matrix c = a.add(b);
>ή 
>Matrix c = a +b;
>

  Μα στη Java τα αντικείμενα δε δουλεύουνε έτσι οπότε η "λογική" αυτή που λες δεν ισχύει. Δεν 
μπορείς να προσθέσεις δύο 
αντικείμενα με τον τελεστή "+" αφού στην ουσία το a και το b είναι αριθμοί της μνήμης που κρατάνε 
διάφορα δεδομένα. Το να 
πεις Matrix c = a +b; είναι "παράλογο" στη  Java.

>-Μια χαρά γλώσσα είναι η Java, αλλά η *πρότυπη* C++ είναι πραγματικά βασίλισσα 

  Εδώ διαφωνώ αλλά έχουμε βγει εκτός θέματος ως είπες και εσύ οπότε δε δίνω συνέχεια.

>1-χρησιμοποιούμε πρότυπα containers αντί για arrays.

  Οι οποίοι (containers) θα χρησιμοποιούνε είτε πινακες (arrays), είτε διανύσματα (vectors) είτε 
stacks και στους οποίους 
πίνακες δε γίνεται έλεγχος αν προσπαθήσεις να προσπελάσεις αντικείμενο το οποίο ίσως δεν υπάρχει 
(μπορεί να κάνω λάθος εδώ 
αλλά μέχρι πριν λίγα χρόνια δεν υπήρχε bounds checking στη C++).

>2-χρησιμοποιούμε iterators αντί για δείκτες για να δειχνουμε μέσα στα 
>containers.

  Όπως άλλωστε και στη Java μπορείς να χρησιμοποιήσεις iterators.

>3-χρησιμοποιούμε references όταν θέλουμε ...pass by reference.

  Ενώ η Java χρησιμοποιεί μόνο αναφορές (references) αλλά περνάει μόνο pass-by-value (εκτός από 
αρχιτεκτονικές όπως RMI όπου 
μπορείς να περάσεις και με αναφορές - pass-by-reference)

  Αυτά τα λίγα... Αν θέλεις ίσως περαιτέρω συζήτηση πάνω σε αυτό το θέμα στείλε μου προσωπικό 
μήνυμα καλύτερα μιας και έχουμε 
βγει *πολύ* εκτός θέματος.







More information about the Linux-greek-users mailing list