2011-08-09 48 views
34

Gần đây tôi đã chuyển từ Java cho C++ nhưng bây giờ khi tôi đang viết ứng dụng của mình, tôi không quan tâm đến việc viết tất cả mọi thứ của mã trong hàm chính mà tôi muốn trong hàm chính để gọi hàm khác nhưng hàm khác này nằm trong một tệp .cpp khác tập tin.Sử dụng nhiều tệp .cpp trong chương trình C++?

Để tôi giải thích rõ hơn nếu bạn không hiểu:
Tôi có một tệp: main.cpp bên trong, tôi có chức năng chính.

Tôi có tập tin thứ hai: second.cpp bên trong tôi có một chức năng gọi là second() Tôi muốn gọi chức năng này được gọi là second() từ chức năng chính của tôi ..

Bất kỳ sự giúp đỡ?

+7

Ah, những niềm vui của tập tin tiêu đề ...... –

+6

Bạn học C++ từ [một cuốn sách giới thiệu tốt] (http://stackoverflow.com/q/388242/46642)? –

+1

Các tệp tiêu đề cũng là câu trả lời, vì vậy vì bạn biết về những tệp đó, không rõ bạn đang làm gì sai. Đăng mã bạn có và lỗi bạn nhận được, nếu không chúng tôi chỉ đoán. – john

Trả lời

50

Bạn phải sử dụng công cụ được gọi là "tiêu đề". Trong một tiêu đề bạn khai báo hàm mà bạn muốn sử dụng. Sau đó, bạn đưa nó vào cả hai tệp. Tiêu đề là một tệp riêng biệt bao gồm sử dụng chỉ thị #include. Sau đó, bạn có thể gọi hàm khác.

// other.h 
void MyFunc(); 

// main.cpp 
#include "other.h" 
int main() { 
    MyFunc(); 
} 

// other.cpp 
#include "other.h" 
#include <iostream> 
void MyFunc() { 
    std::cout << "Ohai from another .cpp file!"; 
    std::cin.get(); 
} 
+2

@ TheCompBoy: Bạn đã tìm kiếm kỹ lưỡng câu trả lời trước khi hỏi câu hỏi của bạn chưa? http://stackoverflow.com/questions/how-to-ask – Vlad

+0

Tôi có thể yêu cầu mục đích của tệp .h được giải thích thêm không? Dường như với tôi rằng nó không chứa thông tin không được đề cập trong tập tin other.cpp –

5

Trong C/C++ bạn có tệp tiêu đề (* .H). Ở đó bạn khai báo các hàm/lớp của bạn. Vì vậy, ví dụ: bạn sẽ phải #include "second.h" vào tệp main.cpp của mình.

Trong second.h bạn chỉ cần khai báo như void yourFunction(); này Trong second.cpp bạn thực hiện nó như

void yourFunction() { 
    doSomethng(); 
} 

Đừng quên #include "second.h" cũng vào đầu second.cpp

Hope this helps :)

12

Bạn nên có các tệp tiêu đề (.h) có chứa khai báo của hàm, sau đó tệp .cpp tương ứng có chứa d efinition. Sau đó, bạn bao gồm tệp tiêu đề ở mọi nơi bạn cần. Lưu ý rằng tệp .cpp chứa các định nghĩa cũng cần phải bao gồm (tệp tương ứng) của tệp tiêu đề.

// main.cpp 
#include "second.h" 
int main() { 
    secondFunction(); 
} 

// second.h 
void secondFunction(); 

// second.cpp 
#include "second.h" 
void secondFunction() { 
    // do stuff 
} 
Các vấn đề liên quan