Topic CrossConnect

Dimitrios Kamenopoulos el97146 at mail.ntua.gr
Thu Oct 3 15:58:01 EEST 2002


On Thursday 03 October 2002 14:34, Giorgos Keramidas wrote:
 
> Πολλές μέρες αφήνεις.  Συνήθως αυτό, όταν το βάζουν σαν C++ project
> στην σχολή μου σε πρωτοετείς τους δίνουν μια βδομάδα καιρό.

Επειδή είναι αδύνατο σε Java, και 500 μέρες να άφηνα λίγες θα ήταν. Βέβαια σε 
500 μέρες μπορεί να έχει βγει η Java 1.5 για την οποία  το νούμερο ένα 
wishlist είναι να γίνει λίγο πιο C++, δηλαδή να έχει templates και επεκτάσιμη 
σύνταξη, κάτι που προφανώς είναι αδύνατον να γίνει σε interpreted γλώσσα.

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

Σύμφωνοι, η υπερφόρτωση τελεστών δεν είναι παρά syntactic sugar, αλλά ένα 
syntactic sugar που πολλές φορές κάνει πολύ πιο κατανοητό τον κώδικα.

Και για να τελειώνει η υπόθεση:
-Μια χαρά γλώσσα είναι η Java, αλλά η *πρότυπη* C++ είναι πραγματικά βασίλισσα 
(αν τις συγκρίνουμε σαν γλώσσες. Η Java εκτός από γλώσσα είναι και ένα πλήρες 
λειτουργικό σύστημα και γι' αυτό η βιβλιοθήκη της έχει κλάσεις για GUI, 
δίκτυα, threads και τέτοια).
-Πρέπει κανείς να διαβάσει κάτι καλύτερο από το SAMS teach yourself C++ in 21 
days για να καταλάβει ότι η πρότυπη C++ είναι μια γλώσσα σαφώς διαφορετική 
από τη C στην οποία δεν είναι καθόλου υποχρεωτικό να χρησιμοποιήσεις δείκτες 
και κατ' επέκταση να έχεις SIGSEGV. Και οι σχετικοί κανόνες είναι πολύ απλοί:
1-χρησιμοποιούμε πρότυπα containers αντί για arrays.
2-χρησιμοποιούμε iterators αντί για δείκτες για να δειχνουμε μέσα στα 
containers.
3-χρησιμοποιούμε references όταν θέλουμε ...pass by reference.

Αυτά. Ήδη είμαστε πολύ off-topic, οπότε δεν επεκτείνομαι.



More information about the Linux-greek-users mailing list