Μια σημαντική μέθοδος για την οργάνωση του κώδικα είναι η χρήση χώρων ονομάτων.
Δύο συναρτήσεις μπορεί να έχουν σύγκρουση ονομάτων, κάτι που μπορεί να λυθεί βάζοντάς τες σε διαφορετικούς χώρους ονομάτων.
Οι χώροι ονομάτων μπορούν να είναι και εμφωλευμένοι, κάτι που μπορεί να βοηθήσει στη δομή μεγάλων βάσεων κώδικα.
Η πρόσβαση στους χώρους ονομάτων γίνεται μέσω του τελεστή ανάλυσης εμβέλειας ::.
Το παρακάτω παράδειγμα δείχνει τη χρήση δύο διαφορετικών συναρτήσεων foo.
Χρησιμοποιούνται μαζί, προσθέτοντας ως πρόθεμα τους αντίστοιχους χώρους ονομάτων τους.
namespace my_ns {
int foo() {
return 44;
}
namespace my_inner_ns {
int baz() {
return 90;
}
}
}
namespace my_other_ns {
int foo() {
return -2;
}
}
int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};
Δουλεύεις σε ένα φημισμένο δικηγορικό γραφείο που ειδικεύεται σε μοναδικές υποθέσεις διαθηκών.
Σε αυτή την άσκηση, θα ανοίξεις ένα μυστηριώδες θησαυροφυλάκιο. Είσαι ο εκτελεστής της κληρονομιάς και θα συνθέσεις τους επί μακρόν φυλαγμένους μυστικούς κωδικούς τριών οικογενειών για να βρεις έναν αριθμό λογαριασμού και τον αντίστοιχο κωδικό.
Για να μην μπορεί καμία οικογένεια να ανοίξει το θησαυροφυλάκιο μόνη της, αυτό μπορεί να ανοιχτεί μόνο αν συνδυάσεις τις γνώσεις τους με έναν μυστικό τροποποιητή που γνωρίζεις από την τελευταία διαθήκη.
Έχεις τρεις εργασίες, όλες σχετικές με το να βοηθήσεις τις οικογένειες να ανοίξουν το θησαυροφυλάκιο.
Όρισε έναν χώρο ονομάτων με το όνομα estate_executor.
Ο κώδικας των επόμενων εργασιών θα πρέπει να οριστεί μέσα στο σώμα του χώρου ονομάτων estate_executor.
namespace some_name {
// The space between the curly brackets
// is called body of the namespace.
}
Αυτή είναι η μεγάλη σου στιγμή. Μόνο εσύ έχεις το μυστικό κλειδί τροποποιητή για να αποκαλύψεις τον μυστικό αριθμό λογαριασμού.
Όρισε τη συνάρτηση assemble_account_number(int secret_modifier) που παίρνει ως όρισμα τον μυστικό τροποποιητή και επιστρέφει τον συναρμολογημένο αριθμό λογαριασμού ως int.
Για να βρεις τον σωστό αριθμό, πρέπει να αθροίσεις το bank_number_part από καθεμιά από τις τρεις οικογένειες.
Οι οδηγίες στη διαθήκη σου ζητούν να προσθέσεις πρώτα όλα τα μπλε και μετά όλα τα κόκκινα τμήματα. Ο κωδικός που προκύπτει είναι το γινόμενο των δύο αθροισμάτων.
Όρισε τη συνάρτηση assemble_code() που επιστρέφει τον κωδικό που προκύπτει, συνδυάζοντας τα τμήματα από τις τρεις οικογένειες σε έναν μόνο integer.
Η συνάρτηση δεν παίρνει κανένα όρισμα και βασίζεται αποκλειστικά στις πληροφορίες που υπάρχουν στους σχετικούς χώρους ονομάτων των οικογενειών.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις C++ με 19 έννοιες100 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.