thể trùng lặp:
Namespace + functions versus static methods on a classC++ - Namespace vs Chức năng tĩnh
Tôi muốn nhóm chức năng tương tự togther. Tôi có thể làm một trong hai cách. Với tôi chúng chỉ là những khác biệt về cú pháp ... cuối cùng nó cũng không thành vấn đề. Chế độ xem này có chính xác không?
Namespace:
namespace util
{
void print_array(int array[])
{
int count = sizeof(array)/sizeof(array[0]);
for (int i = 0; i <= count; i++) cout << array[i];
}
}
Class:
class Util
{
public:
static void print_array(int array[])
{
int count = sizeof(array);
for (int i = 0; i <= count; i++) cout << array[i];
}
};
Gọi với
Util::print_array() // Class
hoặc
util::print_array() // Namespace
Gần đây, chúng tôi đã thảo luận về vấn đề này. Hy vọng rằng ai đó sẽ đăng một liên kết. Không gian tên phải tuân thủ ADL, trong khi các lớp học không phải là; các lớp có thể được tạo khuôn mẫu, trong khi các không gian tên không thể. –