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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies.
Διευκρινήσεις κώδικα Hy240b project 2014 phase 1.
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Αντικειμενοστραφής Προγραμματισμός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, toString Αντικείμενα ως παράμετροι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜMΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.
Γλωσσική Τεχνολογία Object-Orientation in Python.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Μήτρες (templates)  Μία μήτρα είναι ένα κομμάτι κώδικα που περιέχει παραμέτρους οι οποίες δέχονται ως τιμές τύπους δεδομένων.  Είναι ένας μηχανισμός.
Αντικείμενα, Κλάσεις και Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
ΣΥΝΑΡΤΗΣΕΙΣ.
Αντικειμενοστρεφής Προγραμματισμός ΚΛΑΣΕΙΣ ΙΙ. Υπερφόρτωση (Overloading) Όταν το ίδιο όνομα συνάρτησης (μεθόδου) χρησιμοποιείται για περισσότερες από.
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
Δείκτες (Pointers) – Δομές (Structs)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πολυμορφισμός.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης ΜΑΘ106/3122 Γλώσσα Προγραμματισμού Δομές Δεδομένων.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Ξεχωριστή Μεταγλώττιση & Χώροι Ονομάτων Αντικειμενοστραφής Προγραμματισμός.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Κατανεμημένα Συστήματα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κλάσεις και αντικείμενα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Wrapper Classes, Abstract Classes and Interfaces
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Η Γλώσσα Pascal Υποπρογράμματα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Διαθεματικό Ενιαίο Πλαίσιο Προγραμμάτων Σπουδών (ΔΕΠΠΣ) & Αναλυτικά Προγράμματα Σπουδών (ΑΠΣ) Τρύφων Μαυροπαλιάς.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

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

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

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

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

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

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.

Αρχεία .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 πολλές φορές το ίδιο αρχείο καταλάθος.

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

more at http://www.cplusplus.com/doc/tutorial/