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