2011-11-22 44 views

Trả lời

46

Tạo một tệp riêng biệt gọi là utility.hpp và đặt tất cả các khai báo chức năng vào nó, tốt nhất là trong không gian tên riêng có thể chỉ là utility và sau đó đặt các định nghĩa trong utility.cpp. Nếu bất kỳ chức năng tiện ích nào là mẫu hàm, bạn đã đặt định nghĩa trong chính phần đầu.

Tránh xác định tiện ích class và đặt tất cả các chức năng tiện ích vào trong đó là static thành viên. Đó là một ý tưởng tồi tệ. Một lý do cho nó là xấu, là nó không thể tận dụng lợi thế của Argument Dependent name Lookup (ADL).

Sử dụng không gian tên thay thế.

Ví dụ,

//utility.hpp 

namespace utility 
{ 
    void function1(); 
    void function2(); 
    void function3(); 

    template<typename T> 
    void function4() 
    { 
     //function template definition should be here! 
    } 
} 

Và sau đó,

//utility.cpp 

#include "utility.hpp" 

namespace utility 
{ 
    void function1() 
    { 
     //code 
    } 
    void function2() 
    { 
     //code 
    } 
    void function3() 
    { 
     //code 
    } 
} 
+0

Ngoại trừ; đặt tên cho các lớp util.h \ cpp và namespace util; của nó nhiều triệu tập =) –

+0

Ngoài ra, không cần tiền tố 'utility_' trong tên hàm. Đó là những gì không gian tên là dành cho –

+0

@VJo: Tất nhiên, tôi không có ý nghĩa, hàm phải được bắt đầu bằng 'utility_'. Nhưng có vẻ như, nó có thể gây nhầm lẫn cho độc giả (đặc biệt là người mới). Vì vậy, tôi đã chỉnh sửa bài đăng của mình. – Nawaz

-1

Tạo một lớp tiện ích riêng biệt với Util.h (tờ khai) và Util.cpp với việc thực hiện. Bạn cũng có thể lấy nó hơn nữa bằng cách có một giao diện tiện ích, nhưng phụ thuộc.

+5

* lớp tiện ích * là một ý tưởng tồi. – Nawaz

0

bạn có thể muốn kiểm tra google styleguide for c++ đối với một số mẹo vặt hữu ích về chủ đề này ... tuy nhiên: có rất nhiều styleguides vì ​​bạn có thể làm mọi thứ theo nhiều cách hữu ích hơn ... thực hành tốt nhất là chọn một styleguide sau đó dính vào nó cho toàn bộ dự án cho sự nhất quán ... (trừ khi bạn/nhóm của bạn trở nên cảm thấy rất khó chịu về nó ...)

+3

Tôi chưa đọc hướng dẫn về phong cách google cho sự tôn trọng đặc biệt này, nhưng nói chung nó không phải là một hướng dẫn phong cách C++ tốt. –

+0

tôi thấy nó rất thú vị vì có một giải thích về ưu và khuyết điểm của mọi chủ đề ... nhưng tôi mở để gợi ý nếu bạn có thể cung cấp một styleguide tốt hơn ;-) – xmoex

+2

Hướng dẫn phong cách của Goggles là rất xấu –