Όλα όσα πρέπει να γνωρίζετε για το Namespace στο C ++



Αυτό το άρθρο θα σας παρέχει μια λεπτομερή και περιεκτική γνώση του Namespace στο C ++. Είναι διάφοροι τύποι και χρήσεις σε οποιοδήποτε πρόγραμμα.

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

Η ανάγκη για το Namespace

Εξετάστε μια κατάσταση, γράφουμε κάποιον κώδικα που έχει μια συνάρτηση που ονομάζεται abc () και υπάρχει μια άλλη προκαθορισμένη βιβλιοθήκη διαθέσιμη η οποία έχει επίσης την ίδια συνάρτηση abc (). Τώρα κατά τη στιγμή της σύνταξης, ο μεταγλωττιστής δεν έχει ιδέα σε ποια έκδοση της συνάρτησης abc () αναφέρεται στον κώδικα μας.





Χώρος ονομάτων σε c ++

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



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

Ορισμός χώρου ονομάτων

Για να ορίσουμε το namespace ξεκινάμε με το όνομα χώρου λέξεων-κλειδιών ακολουθούμενο από το όνομα namespace ως εξής:

namespace namespace_name {int a, b // δηλώσεις κωδικού όπου // a και b δηλώνονται στο // namespace_name's lingkup}

Σημεία που πρέπει να θυμάστε κατά τον καθορισμό ενός χώρου ονομάτων

  • Οι δηλώσεις χώρου ονομάτων εμφανίζονται μόνο σε παγκόσμιο πεδίο.
  • Οι δηλώσεις χώρου ονομάτων δεν έχουν προσδιοριστές πρόσβασης.
  • Οι δηλώσεις χώρου ονομάτων μπορούν να τοποθετηθούν εντός άλλου χώρου ονομάτων.
  • Δεν χρειάζεται να δώσετε ερωτηματικό μετά το κλείσιμο στηρίγματος του ορισμού του χώρου ονομάτων.
  • Ο ορισμός του χώρου ονομάτων μπορεί να χωριστεί σε πολλές μονάδες.
#include χρησιμοποιώντας namespace std namespace first_function {void func () {cout<< 'Inside first_function' << endl } } namespace second_function { void func() { cout << 'Inside second_function' << endl } } int main () { // Calls function from first name space. first_function::func() // Calls function from second name space. second_function::func() return 0 }

Παραγωγή:



τύπος συνάρτησης σε sql

Στο παραπάνω παράδειγμα για να ορίσουμε τη συνάρτηση func () δύο διαφορετικούς χρόνους, χρησιμοποιούμε το concept namespace. Ορίζουμε την πρώτη συνάρτηση στο namespace first_function καιδεύτερη συνάρτηση στο namespace second_function. Για να καλέσουμε αυτές τις λειτουργίες, χρησιμοποιούμε τον τελεστή ανάλυσης εύρους με τον ακόλουθο τρόπο - first_function :: func () και second_function :: func ().

Χρησιμοποιώντας το Namespace στο C ++

Υπάρχουν τρεις τρόποι για να χρησιμοποιήσετε ένα χώρο ονομάτων στο πρόγραμμα,

  1. Η οδηγία για τη χρήση
  2. Η δήλωση χρήσης
  3. Διαχειριστής Ανάλυσης Περιοχών (: :)

Η οδηγία για τη χρήση

Μπορούμε να αποφύγουμε την προετοιμασία των ονομάτων με το χρησιμοποιώντας οδηγία για το namespace. χρησιμοποιώντας Η λέξη-κλειδί μας επιτρέπει να εισάγουμε έναν ολόκληρο χώρο ονομάτων στο πρόγραμμά σας με παγκόσμιο πεδίο. Μπορεί να χρησιμοποιηθεί για την εισαγωγή χώρου ονομάτων σε άλλο χώρο ονομάτων ή σε οποιοδήποτε πρόγραμμα σύμφωνα με τις απαιτήσεις μας.

Εξετάστε ένα αρχείο κεφαλίδας Namespace_first.h:

namespace First {int a class First_class {int i}}}

Συμπεριλαμβανομένου του παραπάνω αρχείου κεφαλίδας namespace στο αρχείο Namespace_second.h: συμπεριλάβετε το 'Namespace_first.h'

πώς να αλλάξετε ένα διπλό σε int in java
namespace Second {χρησιμοποιώντας namespace First First_class obj int y}

Εισάγουμε το namespace_First στο namespace_Second, επομένως η κλάση First_class θα είναι πλέον διαθέσιμη στο namespace_Second. Ως εκ τούτου, μπορούμε να γράψουμε το ακόλουθο πρόγραμμα σε ξεχωριστό αρχείο, ας πούμε new_file.cpp.

#include 'Namespace_second.h' void test () {using namespace Second // δημιουργία αντικειμένου της κλάσης First_class First_class obj2}

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

Η δήλωση χρήσης

Στη δήλωση χρήσης, εισάγουμε ένα συγκεκριμένο όνομα κάθε φορά που είναι διαθέσιμο μόνο εντός του τρέχοντος πεδίου και καλείται με τη βοήθεια της ανάλυσης πεδίου. ΣΗΜΕΙΩΣΗ: Το όνομα που εισάγεται με χρήση δήλωσης μπορεί να αντικαταστήσει το όνομα που εισάγεται με οδηγία χρήσης. Μπορούμε να το δούμε στο παρακάτω παράδειγμα.

Ας εξετάσουμε ένα αρχείο κεφαλίδας New_File.h:

namespace Πρώτο {void A () {cout<< 'A of First namespacen' } } namespace Second { void A() { cout << 'A of Second namespacen' } }

Τώρα ας δημιουργήσουμε ένα νέο αρχείο προγράμματος με το όνομα New_file_2.cpp με τον παρακάτω κώδικα:

#include 'New_file.h' void B () {using namespace First // using οδηγία using Second :: A // using δήλωση First :: A () // class A () of First namespace A () // call A () του δεύτερου χώρου ονομάτων}

Τελεστής ανάλυσης πεδίου (: :)

Μπορούμε να προσδιορίσουμε ρητά οποιοδήποτε όνομα δηλώνεται σε ένα χώρο ονομάτων χρησιμοποιώντας το όνομα του χώρου ονομάτων και την ανάλυση πεδίου ' :: ' χειριστή με το αναγνωριστικό.

πώς να κάνετε μια ειδοποίηση σε javascript
namespace New_space {class X {static int i public: void func ()} // class name δήλωσης class Y} // Έναρξη της στατικής τάξης μεταβλητή int New_space :: X :: i = 23 class New_space :: Y {int a public: int getdata () {cout<< a } // Constructor declaration Y() } // Constructor definition explicitly New_space::Y::Y() { a=0 }

Αμφισβητήσιμος χώρος ονομάτων στο C ++

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

namespace namespace_name {// κωδικός σώματος}

Ένθετο χώρο ονομάτων σε C ++

Οι χώροι ονομάτων μπορούν να τοποθετηθούν εύκολα και μπορούμε να ορίσουμε έναν χώρο ονομάτων σε έναν άλλο χώρο ονομάτων ως εξής:

namespace namespace_name1 {// body code of namespace_name1 namespace namespace_name2 {// κωδικός σώματος ένθετο namesamespace_name2}}

Με αυτό, φτάνουμε στο τέλος του άρθρου Namespace στο C ++. Ελπίζω να έχετε μια ιδέα για το τι ακριβώς είναι ένας χώρος ονομάτων στο C ++ και ποιοι είναι οι διαφορετικοί τρόποι προσδιορισμού του. Εάν θέλετε να μάθετε περισσότερα, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία μάθησης. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.