Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Namespace trong C++

Xét tình huống: hai người cùng tên Zara trong cùng lớp. Khi cần phân biệt chắc chắn phải dùng thông tin thêm như khu vực, tên bố/mẹ, v.v.

Tương tự trong C++. Ví dụ, bạn viết code có hàm xyz() và có thư viện khác cũng có hàm xyz(). Trình biên dịch không biết bạn đang tham chiếu phiên bản nào.

Namespace được thiết kế để khắc phục khó khăn này, dùng như thông tin thêm để phân biệt hàm, class, biến trùng tên ở thư viện khác nhau. Dùng namespace, bạn định nghĩa bối cảnh (context) cho tên. Bản chất, namespace định nghĩa một phạm vi (scope).

Định nghĩa Namespace

Định nghĩa namespace bắt đầu bằng từ khóa namespace theo sau tên namespace:

namespace namespace_name {
    // khai báo code
}

Để gọi phiên bản hàm/biến có namespace, thêm tiền tố :: tên namespace:

name::code; // code có thể là biến hoặc hàm.

Ví dụ

#include <iostream>
using namespace std;

// namespace đầu tiên
namespace first_space {
    void func() {
        cout << "Bên trong first_space" << endl;
    }
}
// namespace thứ hai
namespace second_space {
    void func() {
        cout << "Bên trong second_space" << endl;
    }
}

int main() {
    // Gọi hàm từ namespace đầu tiên.
    first_space::func();
    // Gọi hàm từ namespace thứ hai.
    second_space::func();
    return 0;
}

Kết quả

Bên trong first_space
Bên trong second_space