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

Sự khác biệt giữa không gian tên và lớp trong C ++

Trong phần này, chúng ta sẽ thấy sự khác biệt giữa không gian tên và lớp trong C ++. Không gian tên và các lớp là hai khái niệm khác nhau. Các lớp là kiểu dữ liệu. Các lớp về cơ bản là phiên bản mở rộng của cấu trúc. Các lớp có thể chứa các thành viên dữ liệu và các hàm làm thành viên, nhưng không gian tên có thể chứa các biến và hàm bằng cách nhóm chúng thành một.

Không gian tên không thể được tạo dưới dạng đối tượng. Khái niệm này đượ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. Các biến, hàm có cùng tên có thể được đặt trong các không gian tên khác nhau.

Bây giờ chúng ta hãy chỉ ra một số điểm khác biệt quan trọng của không gian tên và lớp.

  • Không gian tên được sử dụng để tạo một nhóm định danh để chúng không đụng độ nhau. Bằng cách sử dụng lớp, chúng ta phải tạo một thể hiện của lớp đó, nhưng đối với không gian tên thì điều này không đúng.

  • Đối với không gian tên, chúng tôi sử dụng khai báo ‘using’. Đối với các lớp thì không thể thực hiện được trừ khi chúng ta bắt nguồn từ nó.

  • Chúng tôi có thể mở lại không gian tên và thêm nhiều phần tử hơn trên các đơn vị dịch. Điều này không thể được thực hiện bằng cách sử dụng các lớp.

namespace my_namespace {
   int function1();
}
namespace my_namespace {
   int function1();
}
  • Đối với Class, mã sau không ổn:

class my_class {
   int function1();
};
class my_class {
   int function1();
};
  • Chúng ta có thể sử dụng các không gian tên chưa được đặt tên, điều đó tốt, nhưng chúng ta không thể sử dụng các lớp không có tên Điều đó sẽ tạo ra lỗi.

namespace{ //Legal
   int function1();
};
class { //create error
   int function1();
};