Tôi có một lớp:chức năng template tin
Ch
class C {
private:
template<int i>
void Func();
// a lot of other functions
};
C.cpp
// a lot of other functions
template<int i>
void C::Func() {
// the implementation
}
// a lot of other functions
tôi biết, rằng nó không phải là ý tưởng tốt nhất để di chuyển mẫu thực hiện trong tập tin cpp (bởi vì nó sẽ không được nhìn thấy từ các cpp khác, có thể bao gồm tiêu đề có khai báo mẫu).
Nhưng còn các chức năng riêng thì sao? Bất cứ ai có thể cho tôi biết nếu có khuyết điểm của việc thực hiện các chức năng mẫu tư nhân trong một tập tin .cpp?
http://stackoverflow.com/questions/4315969/where-to-define-c-class-member-template-function-and-functors-that-instantiate/4316020#4316020 –
Trong khi câu hỏi là về mặt kỹ thuật được trả lời bởi Als và Nicola, đối với tôi điều này chỉ đặt ra câu hỏi tại sao bạn làm cho mẫu này thành viên. Nó sẽ không được tốt hơn nhiều để có điều này như là một mẫu chức năng miễn phí trong (không gian tên không tên của) các tập tin cpp? Tôi đã thấy rằng, theo thời gian, tôi đã sử dụng các hàm thành viên riêng tư ngày càng ít, càng ngày càng sử dụng các hàm miễn phí trong (không gian tên không tên) của tệp triển khai lớp. – sbi