Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Από τη C στη C++ Hy240b project 2014 Phase 1.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Από τη C στη C++ Hy240b project 2014 Phase 1."— Μεταγράφημα παρουσίασης:

1 Από τη C στη C++ Hy240b project 2014 Phase 1

2 Γενικά Η C είναι ένα υποσύνολο της C++ (εκτός πολύ μικρών εξαιρέσεων)

3 C struct vs. C++ class (1/3)
Μπορείτε να φανταστείτε μία class στη C++ σαν ένα struct με συναρτήσεις Οι συναρτήσεις αυτές λέγονται μεθόδοι και κύριος ρόλος τους είναι να κάνουν «πράξεις» πάνω στα πεδία του struct(class) Εκτός των απλών συναρτήσεων(μεθόδων) που υπάρχουν μέσα στο struct(class) υπάρχει και μία που λέγεται Constructor με: Σκοπό να δημιουργεί και να αρχικοποιεί, το struct(class) και τα πεδία του Εχει όνομα ίδιο με αυτό του struct(class) Δεν δηλώνεται ο τύπος που επιστρέφει καθώς εννοείται ότι είναι τύπου struct(class) όπου ανήκει:

4 C struct vs. C++ class (2/3)
Είδαμε λοιπόν ότι μέσα σε μία class(struct) μπορεί να υπάρχουν 2 ειδών πράγματα, μεταβλητές και μεθόδους(συναρτήσεις). Οι μεταβλητές και οι μεθόδοι μπορούν να είναι ορατά (scope) είτε μέσα στην class μόνο (private), είτε παντού (public), ανάλογα με το πώς θα τα δηλώσουμε. Συναρτήσεις και μεταβλητές που θα δηλωθούν σαν private μπορούν να κληθούν και να διαβαστούν/γραφτούν αντίστοιχα, μόνο από άλλες συναρτήσεις μέσα στην class. Όταν καλούμε μία μέθοδο της class, υπάρχει μία παράμετρος που περνιέται αυτόματα στην συνάρτηση που λέγεται this, και είναι στην ουσία τύπου struct(class) όπου ανήκει η μέθοδος, και περιέχει όλες τις τιμές του struct(class) από όπου καλέστηκε η μέθοδος.

5 C struct vs. C++ class (3/3)

6 Others (1/1) Σε μερικές συναρτήσεις θα δείτε να έχουν δηλωθεί κάποιες παράμετροι με το & μπροστά: πχ void UnsortedMovieList::insert(const MovieData& data). Αυτό σημαίνει ότι η παράμετρος που θα περαστεί στη συνάρτηση θέλουμε να είναι η ίδια με αυτή που είναι έξω από τη συνάρτηση (σαν να περνούσαμε παράμετρο τον pointer), και να μην γίνει αντιγραφή της τιμής σε καινούργια μεταβλητή. Μπορεί να συναντήσετε το keyword “new”. Το new χρησιμοποιείται για να δεσμέυσουμε μνήμη δυναμικά για μία class και επιστρέφει έναν pointer τυπου struct(class). Το αντίστοιχο που υπάρχει στην C είναι η συνάρτηση malloc που επιστρέφει έναν Pointer στη θέση μνήμης όπου βρίσκεται το struct. Point* p = new Point(3,4); // C++ create a new class point struct Point* p = malloc( sizeof( struct Point ) ); // C create a new struct point.

7 Αρχεία .hpp και .cpp (1/1) Στη C++ (αλλά και στη C), υπάρχει η σύμβαση όπου όλες οι κλάσεις και οι δηλώσεις μεταβλητών και συναρτήσεων υπάρχουν σε .hpp αρχεία (.h στη C) και όλες οι υλοποίησεις των συναρτήσεων στα .cpp (.c στη C) αρχεία. Στα .cpp αρχεία θα παρατηρήσετε ότι τα ονόματα των συναρτήσεων είναι της μορφής [class name] :: [function name / variable name] . Το “::” υποδηλώνει σε ποια class βρίσκεται το όνομα της συνάρτησης ή μεταβλητής ώστε να ξέρουμε ακριβώς σε ποια αναφερόμαστε. Επιπλέων μπορεί να δείτε κάτι της μορφής [namespace] :: [class name] :: [function name / variable name]. Τα namespaces είναι χώροι ονομάτων που περιλαμβάνουν περισσότερες από μια class για να φτιάχνουμε πακέτα κλάσεων. Σε μερικά αρχεία .hpp ψηλά θα δείτε το “#pragma once”. Αυτό υπάρχει για να πει στον compiler να μην κάνει include πολλές φορές το ίδιο αρχείο καταλάθος.

8 Makefiles (1/1) Τα makefiles είναι εργαλείο που το χρησιμοποιούμε για να μας βοηθάει στο compile/build κώδικα C/C++ που αποτελείται από πολλά αρχεία. Σε περίπτωση που χρησιμοποιήσετε makefiles, υπάρχουν οδηγίες για το πώς να χρησιμοποιηθεί χωρίς να χρειαστεί να μάθετε πως δουλεύει και γιατί.

9 more at


Κατέβασμα ppt "Από τη C στη C++ Hy240b project 2014 Phase 1."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google