Computer >> Máy Tính >  >> Lập trình >> C ++

Không gian tên trong C ++

Hãy xem xét một tình huống, khi chúng ta có hai người có cùng tên, Zara, trong cùng lớp. Bất cứ khi nào chúng ta cần phân biệt chúng chắc chắn chúng ta sẽ phải sử dụng một số thông tin bổ sung cùng với tên của chúng, chẳng hạn như khu vực, nếu chúng sống ở khu vực khác hoặc tên cha hoặc mẹ của chúng, v.v.

Tình huống tương tự có thể phát sinh trong các ứng dụng C ++ của bạn. Ví dụ:bạn có thể đang viết một đoạn mã nào đó có một hàm được gọi là xyz () và có một thư viện khác có sẵn mà cũng có cùng một hàm xyz (). Bây giờ trình biên dịch không có cách nào biết được phiên bản nào của hàm xyz () mà bạn đang đề cập đến trong mã của mình.

Không gian tên được thiết kế để khắc phục khó khăn này và được sử dụng làm thông tin bổ sung để phân biệt các hàm, lớp, biến tương tự, v.v. với cùng tên có sẵn trong các thư viện khác nhau. Sử dụng không gian tên, bạn có thể xác định ngữ cảnh mà các tên được xác định. Về bản chất, một không gian tên xác định một phạm vi.

Xác định không gian tên

Định nghĩa không gian tên bắt đầu bằng không gian tên từ khóa theo sau là tên không gian tên như sau -

namespace namespace_name {
   // code declarations
}

Để gọi phiên bản hỗ trợ không gian tên của hàm hoặc biến, hãy thêm trước (::) tên không gian tên như sau -

name::code; // code could be variable or function.

Ví dụ

#include <iostream>
using namespace std;
// first name space
namespace first_space {
   void func() {
      cout << "Inside first_space" << endl;
   }
}
// second name space
namespace second_space {
   void func() {
      cout << "Inside second_space" << endl;
   }
}
int main () {
   // Calls function from first name space.
   first_space::func();
   // Calls function from second name space.
   second_space::func();
   return 0;
}

Đầu ra

Inside first_space
Inside second_space