Tôi đã đọc một cuốn sách cấu trúc dữ liệu cũ hơn và nó nói rằng khi bạn đang làm lập trình lớp mẫu, bạn nên bao gồm .cpp ở cuối tệp .h.Bao gồm .cpp ở cuối tập tin tiêu đề mẫu
Theo tôi biết bạn phải thực hiện đầy đủ chức năng trong tệp .h của bạn cho bất kỳ chức năng thành viên lớp mẫu nào - đó là cách trình biên dịch mẫu hoạt động.
Các chức năng duy nhất tôi được dạy có thể được đưa vào tệp triển khai cho lớp mẫu là các chức năng chuyên môn mẫu, ví dụ: template<> Class<Type>::function_name()
.
Tại sao cuốn sách này đề xuất bao gồm tệp .cpp ở cuối .h? đây có phải chỉ là cách tách các triển khai thành các tệp khác nhau trong khi bắt chúng biên dịch với tiêu đề không? và nếu vậy, bạn sẽ đặt chuyên môn thực sự ở đâu - tôi đoán họ không thể đi vào .cpp kèm theo tiêu đề.
Tôi chưa bao giờ thấy trong các tập tin này có tên là 'ipp' –
@JohnDibling: Tất cả đều được tăng cường. Các câu hỏi về điều đó thậm chí còn được nêu ra ở đây trên SO trước đây. –
xem http://stackoverflow.com/questions/543507/in-the-c-boost-libraries-why-is-there-a-ipp-extension-on-some-header-files –