Namespace là gì?
- ★
- ★
- ★
- ★
- ★
Giả sử một tình huống chúng ta có hai người có cùng tên Zara, trong cùng một lớp (class). 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++. Ví dụ bạn có thể đang viết một số code có một hàm được gọi là xyz () và có sẵn một thư viện (library) khác cũng có cùng một hàm xyz (). Bây giờ trình biên dịch (complier) 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 code của mình.
Namespace được thiết kế để giải quyết vấn đề này và được sử dụng làm thông tin bổ sung để phân biệt các hàm (function), lớp, biến (variable) tương tự, v.v. có cùng tên có sẵn trong các thư viện khác nhau. Sử dụng namespace 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 namespace xác định một scope.
Trong C++, định nghĩa namespace bắt đầu với từ khóa (keyword) namespace theo sau là tên namespace như sau:
namespace namespace_name {
// code declarations
}
Để gọi một phiên bản của hàm hoặc biến ta sử dụng cú pháp bên dưới với name là tên của namespace, code là biến hoặc hàm.
name::code; // code could be variable or function.
Bên dưới là code ví dụ:
#include
using namespace std;
// first name space
namespace first_space {
void func() {
cout
Nếu chúng tôi biên dịch và chạy đoạn code trên sẽ tạo ra kết quả sau:
Inside first_space Inside second_space
Learning English Everyday