2012-07-01 36 views
5

Tôi có nên #bao gồm mọi thứ tôi cần trong mọi tệp tiêu đề/cpp không? Tôi đang làm việc trên một động cơ trò chơi 2d atm (cho thực hành chủ yếu) và trong xem xét mã của tôi, tôi nhận ra rằng tôi lặp lại chuỗi và vector trong hầu hết các tập tin. Đây có phải là vấn đề không và cách tôi xử lý vấn đề này?Cách sử dụng #include trong các dự án lớn?

Tôi luôn có ý kiến ​​rằng mọi lớp học hoặc mô-đun bạn viết nên đứng trên hai chân của chính nó, để nói. Tôi thực sự thích lập trình chung (tôi bao gồm ngôn ngữ kịch bản của riêng tôi trong động cơ, với công cụ soạn thảo kịch bản của riêng tôi) nhưng tôi cũng nhận ra rằng nó có thể gây ra rất nhiều chi phí và sự nhầm lẫn.

+0

Nếu có '# ifdef' đúng, bao gồm tiêu đề nhiều lần không được gây ra bất kỳ sự cố nào. Ngoài ra, bạn đang ở vị trí thứ 2. –

+0

nếu bạn muốn tạo tệp tiêu đề là tất cả các tính năng phổ biến bao gồm và bao gồm thay vào đó bạn có thể nhưng tôi sẽ không đi xa hơn thế nữa. Và tôi sẽ thận trọng khi đặt quá nhiều vào tập tin đó và/hoặc bao gồm cả tập tin đó trên bảng. – twain249

+0

Nếu bạn đã quen thuộc với lập trình chung, bạn có thể cảm thấy "#include" trong c/C++ không linh hoạt và không hài lòng. Những gì bạn cần làm là làm quen với c/C++ và suy nghĩ trong c/C++. :) – ciphor

Trả lời

5

Tôi chỉ muốn bao gồm <string><vector> nếu cần.

Để đảm bảo các tệp tiêu đề riêng lẻ tự đứng, tôi thích cách Hướng dẫn kiểu Google C++ giao dịch với include order. Về cơ bản, luôn liệt kê foo.hpp tương ứng bao gồm trước khi tất cả khác bao gồm trong foo.cpp. Bằng cách đó, chúng ta biết rằng foo.hpp sẽ không mong đợi một cái gì đó được bao gồm trước khi nó và thất bại nếu nó không có ở đó.

+0

Một lần, tôi khá giống như hướng dẫn được cung cấp bởi Google, đó là một thay đổi: p –

2

Nó không phải là một vấn đề. Bạn nên bao gồm, trong mọi tệp, các phụ thuộc tối thiểu tuyệt đối - không nhiều, nhưng không kém.

Các vấn đề liên quan