Topic CrossConnect
Dimitrios Kamenopoulos
el97146 at mail.ntua.gr
Thu Oct 3 12:37:01 EEST 2002
On Thursday 03 October 2002 11:54, Panos wrote:
> Το αιώνιο σύμπλεγμα κατωτερότητας των C/C++ προγραμματιστών έναντι αυτών
> της Java. Τι φόβόσαστε
ρε παιδιά, μη σας φάμε τις δουλειές σας; Αλλά
> είπαμε, όποιος έχει τη μύγα μυγιάζεται.
Η αιώνια παρεξήγηση όσων φοβήθηκαν υπερβολικά να ασχοληθούν με κάτι σοβαρότερο
από Java. Άλλο C, άλλο C++.
Π.χ.
ifstream file(filename);
if (!file){ //μη διαβάζεις
...
}
else{
...
}
Δύο γραμμές για άνοιγμα αρχείου, χωρίς δέσμευση μνήμης με new, χωρίς
εξαιρέσεις, χωρίς όλα αυτά τα χαζά που κάνουν τη Java 2 φορές πιο αργή.
Πώς; Δεν έχετε overloading του τελεστή ! για εξαγωγή ενός απλού bool από από
ένα file; Δεν έχετε overloading τελεστών γενικότερα;
> ή ακόμα πιο εύκολα...
>
> public int openFileForInput() throws FileNotFoundException
> {
> if ( new FileInputStream(new File("file")) == null ) return 1;
>
> ή
>
> return ( new FileInputStream(new File("file")) == null? 0 : 1);
> }
>
> όχι ότι συνηγορώ με το παραπάνω, είμαι κατά της δήλωσης εξαιρέσεων στην
> δήλωση της μεθόδου και
κατά του ternary operator (κυρίως για θέμα
> καθαρότητας), απλώς να δείξω καιέναν άλλο τρόπο.
Η δήλωση εξαιρέσεων στη δήλωση της μεθόδου είναι απολύτως υποχρεωτική στη Java
για εξαιρέσεις που κληρονομούν τη java.lang.Throwable. Δεν είναι θέμα
γούστου. Επίσης αυτός ο τρόπος δεν είναι και πολύ χρήσιμος γιατί στη Java δεν
ισχύει το αυτόματο 1==true, 0==false της C/C++.
More information about the Linux-greek-users
mailing list