30/09/2018, 17:53
Có nhất thiết phải include thêm file.cpp đối với khuôn mẫu lớp trong hàm main()?
Xin chào tất cả các bạn!
Có nhất thiết phải include thêm file.cpp đối với khuôn mẫu lớp trong hàm main() ?
Cụ thể là mình cài đặt một file.h chứa phần khai báo khuôn mẫu lớp.Và một file.cpp chứa phần định nghĩa các hàm thành viên.
=>if{ định nghĩa các hàm thành viên trực tiếp trong phần khai báo lớp thì ngoài hàm main() chỉ phải include file.h thôi }.else{ thì phải include cả 2 file }.
Bài liên quan
Ta không bao giờ nên include file
.cpp
trong C++..cpp
là để chứa định nghĩa, definition,.h
là để chứa khai báo, declaration.Vâng! Nhưng đối với khuôn mẫu lớp có một điều lạ là: khi e làm như vậy thì bị lỗi~
Em làm lỗi là vì em sai một cái gì đấy. Em phải làm theo những khái niệm căn bản nhất trước, tức là không include file
.cpp
.Uh, template thì bạn cứ quăng hết vào file .h, không thì compiler sẽ báo lỗi. Nó có cách để đi vòng như theo bạn nói bằng cách include file cpp. Nguyên nhân và giải thích thì ở trên mạng có nhiều lắm, ví dụ http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file
Khi e chia định nghĩa hàm ngoài khuôn mẫu lớp thì lỗi : e định nghĩa bên trong thì không sao cả
E thấy có lỗi gì đâu ạ? E xem giúp e với!
Đọc comment của @Itachi_Citus, có phải lỗi giống thế không?
Vâng đúng a ạ! Tại vì e thử include thêm file.cpp thì lại không bị sao.
E thường hay chia ra 2 để dễ quản lý ->làm với khuôn mẫu lớp thì e thấy sinh ra điều này
Vậy thì làm theo cách của @Itachi_Citus đi