C++ Nâng Cao. Tìm Hiểu Về NameSpace

Hello. Chào các bạn ghé thăm blog. Chủ đề học lập trình c++ nâng cao.

Hôm nay chúng ta sẽ tìm hiểu về kỹ thuật NameSpace trong c++
1. NameSpace Trong Lập Trình C++ Là Gì ?

Là một kỹ thuật nhóm các hàm hoặc các biến thành một nhóm riêng hay một vùng không gian riêng có tên đại diện.

Vì sao lại có cơ chế này.

  • Trong một proejct có thể có những hàm trùng tên nhau.
  • Hoặc giữa project của bạn và các thư viện bên ngoài có hàm trùng tên nhau
  • Hoặc giữa project của bạn và thư viện hệ thống có hàm trung tên nhau.

Do đó khi bạn gọi hàm, chương trình có thể gọi nhầm hàm không mong muốn.

Do đó namespace được sử dụng để phân biệt các hàm các biến giữa hệ thống, thư viện ngoài và project người lập trình tạo ra.

2. Sử dụng NameSpace như thế nào ?

Khi chúng ta xây dựng nên các lớp bao gồm các hàm tiện ích ví dụ như

+ Các hàm xử lý chuỗi.

+ Các hàm xử lý đọc file dữ liệu, ghi file dữ liệu thao tác file.

+ Các hàm xử lý toán học.

+ Các hàm xử lý thuật toán.

Thì chúng ta có thể gom chúng vào thành từng namespace riêng do chúng ta định nghĩ ra.

Hay xem ví dụ dưới đây để hiểu cách sử dụng namespace

#ifndef STRWORK_H_
#define STRWORK_H_
#include <string>

namespace StrWrk
{
  class StrWork
  {
    public:
    static std::string  WcharToString(wchar_t* wsch);
    static wchar_t*     StringToWchar(std::string str);
    static std::wstring WcharToWstring(wchar_t* wsch);

  };
}

#endif

Sau đó khi định nghĩa

namespace StrWrk
{
  std::string StrWork::WcharToString(wchar_t* wsch)
  {
    std::string str("");
    int index = 0;
    while (wsch[index] != 0) 
    {
      str += (char)wsch[index];
      ++index;
     }
    return str;
  }
}

Khi sử dụng chúng ta chỉ việc gọi.

StrWrk::StrWork::WcharToString(str);

Nếu không muốn gọi tên namespace. Chúng ta có thể sử dụng câu lệnh như sau:

using namespace StrWrk;

Và sau đó chúng ta chỉ việc gọi: StrWork::WcharToString(str); là đủ.

Vây đây chính là cách mà chúng thường dùng khi gọi các hàm của thư viện tiêu chuẩn std. Chúng ta không muốn gọi std::cin nên chúng ta đã sử dụng
using namespace std;

Ok. Đó là cơ bản về kỹ thuật namespace trong c++

Pass Pham

 

2 thoughts on “C++ Nâng Cao. Tìm Hiểu Về NameSpace

  • 27 July, 2018 at 6:04 am
    Permalink

    cái dòng :
    &nbsp ;
    là gì vậy anh, em thấy ko có nó cũng được mà.

    Reply
    • 27 July, 2018 at 6:34 am
      Permalink

      Lỗi của wordpress ấy, cứ viết code vào là nó sinh ra mấy cái đó, anh xóa đi rồi. Xem bài viết chỗ nào có cái đó thì comment nhắc anh sửa nhé. a cảm ơn!

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.