Αντικείμενα στη C++

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Εισαγωγή

Το πρώτο πρόγραμμα σε C++

Το πρώτο πρόγραμμα σε C++ θα τυπώσει, όπως θα περίμενε κανείς, τις λέξεις hello, world:
#include <iostream.h>

main()
{
	cout << "hello, world\n";
}

Μεταγλώττιση

Στο περιβάλλον του εργαστηρίου (Windows NT, Visual C++) το πρόγραμμα πρέπει να έχει επίθεμα .cpp αντί για .c για να το αναγνωρίσει ο μεταγλωττιστής ως πρόγραμμα C++. Ο μεταγλωττιστής παραμένει ο ίδιος (cl).

Σε εγκαταστάσεις Linux το πρόγραμμα πρέπει να έχει επίθεμα .C. Για να μεταγλωττιστεί χρησιμοποιούμε την εντολή g++.

C++ ως καλύτερη C

Η C++ προσφέρει πρόσθετες δυνατότητες σε προγράμματα C:

Ορισμός κλάσεων

Καθοριζόμενοι τελεστές

Είσοδος και έξοδος

Βιβλιογραφία

Πηγές στο Internet

Άσκηση

Άσκηση 8

  1. Να υλοποιηθεί σε C++ η κλάση της ουράς ακεραίων int_queue σύμφωνα με τις παρακάτω συναρτήσεις:
    Δημιουργεί μια άδεια ουρά size στοιχείων
    int_queue(int size);
    Το στοιχείο i εισάγεται στο τέλος της ουράς
    void put_int_queue(int i);
    Το στοιχείο από την αρχή της μη κενής ουράς αφαιρείται και επιστρέφεται
    int get_int_queue();
    Επιστρέφεται αληθές αν η ουρά είναι κενή
    int isempty_int_queue();
  2. Με βάση τον αφηρημένο αυτό τύπο και μονοτονικά αυξανόμενη μεταβλητή να υλοποιηθεί πρόγραμμα το οποίο να υλοποιεί ουρά εξυπηρέτησης πελατών ως εξής:
    1. Όταν εισάγεται ο χαρακτήρας I (In) το πρόγραμμα τυπώνει τον αριθμό προτεραιότητας του νέου πελάτη.
    2. Όταν εισάγεται ο χαρακτήρας O (Out) το πρόγραμμα τυπώνει τον αριθμό προτεραιότητας του επόμενου πελάτη που θα εξυπηρετηθεί.
    Παράδειγμα:
    I
    1
    I
    2
    I
    3
    O
    1
    I
    4
    O
    2
    ...
    
    Παρατήρηση: Το πρόγραμμα μπορεί να δομηθεί γύρω από τον παρακάτω κώδικα εισόδου:
    #include <iostream.h>
    
    main()
    {
    	char c;
    	// Initializations here
    
    	for (;;) {
    		cin >> c;
    		switch (c) {
    		case 'I':
    			// Process input here
    			break;
    		case 'O':
    			// Process output here
    			break;
    		}
    	}
    }