Διαφορές μεταξύ C και C++

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
alex599
Δημοσιεύσεις: 66
Εγγραφή: 17 Δεκ 2008 01:11
Τοποθεσία: Πάτρα

Διαφορές μεταξύ C και C++

Δημοσίευση από alex599 » 04 Ιαν 2010 12:48

Πέρα από την βασική και προφανή διαφορά μεταξύ των δύο γλωσσών που είναι τα αντικειμενοστρεφεί στοιχεία της C++, αν κάποιος ενδιαφέρεται να κάνει το πέρασμα από τη C στη C++, θα πρέπει να προσέξει και τις διαδικαστικές διαφορές τους.

1) Η συνάρτηση main() πρέπει αναγκαστικά να ορίζεται και να επιστρέφει ένα δεδομένο τύπου ακέραιου ως εξής:

Κώδικας: Επιλογή όλων

int main(){
    main_code;
    return 0;
}
2)Μπορούμε να δηλώσουμε μεταβλητές σε όποιοδήποτε σημείο του προγράμματος επιθυμούμε (φυσικά με προσοχή στην εμβέλεια που αποκτούν) και ιδιαίτερα χρήσιμο είναι σε ένα for-block:

Κώδικας: Επιλογή όλων

for &#40;int i=0;i<N;i++&#41;&#123;
   for_code;
&#125;
3)Στη C++ υπάρχει και ο λογικός(bool) τύπος δεδομένων σαν βασικός τύπος.

4)Η εισαγωγή και εξαγωγή δεδομένων στη C++ δεν γίνεται πλέον με τις συναρτήσεις scanf() και printf() αλλά με τα αντικείμενα cin και cout. Βέβαια μπορούν να χρησιμοποιηθούν και οι συναρτήσεις τις C!

5)H δέσμευση μνήμης στη C++ δεν γίνεται με τις malloc(),calloc(),realloc() αλλά με το αντικείμενο new, και η διαγραφή δεν γίνεται με την free() αλλά με το αντικείμενο delete.

6)Στις δομές, στη C επιτρέπεται η δήλωση μόνο μεταβλητών! Αντίθετα στη C++, επιτρέπεται και η δήλωση συναρτήσεων (βέβαια με την ύπαρξη κλάσεων οι δομές γίνονται άχρηστες).

7)Με χρήση του τελεστή επίλυσης εμβέλειας :: έχουμε την δυνατότητα πρόσβασης και σε μεταβλητές πέρα από τον χώρο εμβέλειας μας ή την πολλαπλή χρήση ονόματος.

8)Στις παραμέτρους συναρτήσεων μπορούμε να έχουμε default τιμές κατά τον ορισμό της συνάρτησης, τις οποίες μπορούμε να αλλάξουμε μέσω των ορισμάτων ή ακόμη και να παραβλέψουμε.

9)Η μεταβίβαση δεδομένων σε συναρτήσεις μπορεί να γίνει είτε κατ'αξία είτε με αναφορά με δείκτες και αναφορικές μεταβλητές.

Αυτές είναι μερικές από τις κύριες διαφορές μεταξύ των δύο αυτών υπέροχων γλωσσών![/list]
while(!dead()) ++knowledge;

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες