30/09/2018, 17:01
Cách tách code ra thành file .cpp và file .h?
cho e hỏi chút ạ, e có 1 file declaration.h
để khai báo 1 namespace chứa class có các phương thức và thuộc tính abcxyz gì đó, rồi e lại tạo 1 file definition.h
để định nghĩa các phương thức cho class đó có đc ko ạ?
Còn file main.cpp
thì e include 2 file kia vào để dùng như bình thường ạ. Tất nhiên là trong definition.h
e cũng include declaration.h
.
Chương trình chạy ổn nhưng e ko biết làm thế có đúng ko nữa, nên lên đây hỏi ý kiến mọi người
Bài liên quan
Chương trình chạy được là được.
Nhưng để người khác nhìn vô dễ hiểu thì định nghĩa trong declaration.h thì nên thực thi trong declaration.cpp. Như thế người ta dễ tìm hơn.
Không được đâu. Việc định nghĩa phải cho vào file .cpp. Khi inlude file .h mình mong đợi là mình đang inlude các khai báo chứ không phải định nghĩa.
Lý do là vì khi include định nghĩa sẽ làm code phình to ra. Khi mình include có nghĩa là mình kéo đoạn code trong file include về file hiện tại. Nếu trong file include toàn là định nghĩa thì mình sẽ có một file mới có toàn là định nghĩa của code từ file khác.
Việc compile trong C và C++ chia ra làm hai phần là để tránh việc include định nghĩa.
Các ngôn ngữ như Java và C# thì có giải pháp khác để include nên không có file header.
nếu không include file định nghĩa thì main nó lại báo undefined a ạ
Em phải include file khai báo chứ? Nói như vậy thì có vẻ em quên mất căn bản về include file .h rồi
bọn e chưa đc học tách file mà a.
thế a có thể nói ngắn gọn cách tách file đc ko ạ?
ví dụ: file khai báo chỉ khai báo, file định nghĩa include file khai báo và chứa các định nghĩa. file main include …
Em phải có một file .cpp để chứa định nghĩa và một file .h để chứa prototype. Ví dụ em có file
code.cpp
thì sẽ có một file khác làcode.h
Trong file
code.cpp
ta sẽ include filecode.h
Trong file
code.h
ta sẽ có prototype của filecode.cpp
trong file
code.cpp
ta sẽ có định nghĩa của các hàmtrong file
main.cpp
ta sẽ include filecode.h
file
Array.h
của e như sau:File
Array.cpp
như sau:Còn file
main.cpp
như sau:A thấy e include sai không ạ?
e compile main nó cứ báo mấy cái undefined
Nó bào cái gì undefined? Kiểm tra xem file .cpp và file .h và file main có nằm chung thư mục không?
nó undefined mấy cái của file
Array.h
đó a.tất cả cùng thư mục rồi mà
Hồi trước mình cũng bị kiểu undefined với template này một lần. Hình như hồi đó mình fix bằng cách tạo 1 project bằng code block rồi code lại như trên (không tạo riêng rẽ từng file). Cũng không nhớ có phải vậy không.
a @ltd giúp e với
Trường hợp này thì có lẽ là do phần khai báo template của em bị lỗi. Bây giờ em thử làm lại từ đầu không có template, không có gì cả. Chỉ có class Array cực kỳ đơn giản include đúng như thế này xem?
không được a ạ
e làm 3 file sau:
testTachFile.h
testTachFile.cpp
main.cpp
Của anh chạy ok mà
Anh đổi ten file thành
array.h
hay tại Dev C++ không hỗ trợ nhỉ?
Anh không nghĩ thế Em thử tạo một project mới hoàn toàn xem sao?
không đc a ơi
e tạo project mới xong tạo 3 file như thế mà nó ko chạy
Hmm, anh không dùng DevC nên khó giúp quá, nhưng anh khá chắc chắn là DevC vẫn có thể hỗ trợ được bình thường
hiu hiu, buồn ghê gớm, a có teamviewer ko? xem giúp e.
với lại a xem giúp e chỗ try catch với, hình như e làm ko đúng