Tôi đang làm việc trong Visual C++. Tôi có hai tệp .cpp trong cùng một tệp nguồn. Làm thế nào tôi có thể truy cập một lớp (.cpp) chức năng trong chính này .cpp?Truy cập chức năng thành viên của một tệp .cpp khác trong cùng một tệp nguồn?
Trả lời
Bạn nên xác định lớp học của mình trong tệp .h và triển khai nó trong một tệp .cpp. Sau đó, bao gồm tập tin .h của bạn bất cứ nơi nào bạn muốn sử dụng lớp học của bạn.
Ví dụ
tập tin use_me.h
#include <iostream>
class Use_me{
public: void echo(char c);
};
tập tin use_me.cpp
#include "use_me.h" //use_me.h must be placed in the same directory as use_me.cpp
void Use_me::echo(char c){std::cout<<c<<std::endl;}
main.cpp
#include "use_me.h"//use_me.h must be in the same directory as main.cpp
int main(){
char c = 1;
Use_me use;
use.echo(c);
return 0;
}
Tom, Tôi có thể truy cập chức năng use_me mà không cần tạo tệp tiêu đề ... – Rajakumar
Chắc chắn bạn có thể. Sao chép khai báo lớp 'Use_me' và dán nó vào vị trí của các chỉ thị' # include' trong * main.cpp * và * use_me.cpp *. Đó là cơ bản những gì '# include' nào. Bạn sẽ là ngu ngốc để làm điều đó, nhưng nó chắc chắn có thể làm. –
'use_me.h' là không cần thiết trong cùng thư mục với' main.cpp' vì bạn có thể bao gồm nó như '#include
Bạn nên đặt các khai báo hàm trong một tệp .hpp flie và sau đó #include
trong tệp main.cpp.
Ví dụ, nếu các chức năng bạn đang gọi điện thoại là:
int foo(int bar)
{
return bar/2;
}
bạn cần phải tạo một file foobar.hpp với điều này:
int foo(int bar);
và thêm dòng sau vào tất cả cpp các tệp gọi foo
:
#include "foobar.hpp"
Nếu không tạo ra tập tin header. Sử dụng công cụ sửa đổi extern
.
a.cpp
extern int sum (int a, int b);
int main()
{
int z = sum (2, 3);
return 0;
}
b.cpp
int sum(int a, int b)
{
return a + b;
}
Tôi chắc chắn rằng các hàm có liên kết extern theo mặc định . Bạn chỉ cần 'extern' trên các biến. –
- 1. Có thể truy cập các chức năng xuất mô-đun khác trong cùng một tệp không?
- 2. Truy cập chức năng tĩnh trong các tệp khác
- 3. Nhiệm vụ của thành viên trong một chức năng const
- 4. C++ chức năng thành viên truy cập biến tĩnh riêng?
- 5. Truy cập các biến từ một tệp CoffeeScript khác?
- 6. Chức năng thành viên lớp lồng nhau không thể truy cập chức năng của lớp kèm theo. Tại sao?
- 7. Nhiều chuỗi Python truy cập cùng một tệp
- 8. Hai tệp java, trong cùng một thư mục, một tệp truy cập vào các lớp khác/s?
- 9. Nhiều quy trình truy cập cùng một tệp
- 10. Truy cập vào các thành viên riêng của một Superclass
- 11. Tách mã lớp thành một tiêu đề và tệp cpp
- 12. cách truy cập loại được xác định trong một tệp .ml trong tệp .ml khác
- 13. Chức năng thành viên C++ so với chức năng miễn phí
- 14. thứ tự các hàm trong tệp cpp
- 15. Làm cách nào để truy cập chức năng bên trong một chức năng?
- 16. Gọi chức năng khác trong cùng một bộ điều khiển?
- 17. Chức năng gọi thành viên của số
- 18. Tệp có được truy cập bởi một ứng dụng khác
- 19. Chức năng thành viên tĩnh
- 20. QtConcurrent với chức năng thành viên
- 21. Sử dụng biến chuỗi tạo tệp trong tệp CPP
- 22. Điểm thành viên tham chiếu lớp cho thành viên khác trong cùng một lớp
- 23. Tổ chức tệp nguồn
- 24. Trở * này trong chức năng thành viên
- 25. Perl: Truy cập các biến 'của tôi' từ một tệp khác
- 26. thành viên truy cập của một kiểu dữ liệu tùy chỉnh trong Haskell
- 27. Khi nào tôi nên sử dụng các chức năng không phải là thành viên không phải thành viên đối với các chức năng của thành viên?
- 28. C++: Làm thế nào một hàm thành viên tĩnh công khai truy cập các biến thành viên cá thể riêng?
- 29. Danh sách các thành viên nguồn trong một tệp với SQL
- 30. thành viên tư nhân có thể truy cập từ các trường hợp khác cùng lớp
Ông có thể vui lòng giải thích lý do tại sao bạn không muốn sử dụng một tập tin tiêu đề? Điều đó có thể hữu ích để giúp bạn giải quyết vấn đề của bạn. –
Tôi không nghĩ anh ấy nói anh ấy không muốn. Có vẻ như anh ấy không biết * làm thế nào *. –