2012-06-25 32 views
8

Khi viết mã C++, tôi thường bắt đầu bằng cách viết đầy đủ mã 'triển khai' trong tệp tiêu đề của mình, sau đó cần phải cấu trúc lại việc triển khai thành tệp .cpp tập tin.Tự động tách (refactor) .h thành tiêu đề và thực hiện (h + cpp)

Điều này thật tuyệt, nhưng tôi thấy quá trình này mất thời gian, nhưng nếu không khá dễ dàng, vì vậy tôi tự hỏi liệu có cách tự động nào để thực hiện việc này không?

Cụ thể, tôi muốn chuyển đổi tất cả các định nghĩa lớp và chức năng trong các khai báo .h và khai báo chúng trong tệp .cpp mới.

Tôi đang sử dụng xcode, nhưng tôi mở cho mọi giải pháp.

+0

XCode? Tôi nghĩ rằng có nghĩa là ObjectiveC (++), không phải là "đồng bằng" C++. –

+0

XCode chỉ là một IDE chung mà tập trung vào mục tiêu C. Không chắc chắn có nên bận tâm đến nó hay không, nhưng tốt hơn là cung cấp quá nhiều thông tin. ;) – aaaidan

Trả lời

9

Lazy C++ nơi bạn chỉ viết một tệp .lzz và nó tạo ra .h và .cpp cho bạn.

Tôi thực sự mong chờ C++ modules nơi bạn chỉ viết .cpp và tệp nhập được tạo tự động. Nhưng chúng tôi sẽ phải chờ một vài năm mặc dù Clang đã bắt đầu triển khai các mô-đun. Here là một số ví dụ.

+0

Xin chào, tôi thích nó! Vì vậy, bạn có thể có một quy tắc makefile/dependency tạo ra 'cpp' và' h' khi '.lzz' thay đổi. Tốt đẹp. – aaaidan

1

Bạn có thể sử dụng một số công cụ như Makeheaders

http://www.hwaci.com/sw/mkhdr/

nhưng nhìn chung, những công cụ này chưa hoàn chỉnh, đặc biệt là đáp ứng mới C++ 11 tập tin.

+0

Mmm, trông đầy hứa hẹn, nhưng mất rất nhiều tinh chỉnh để làm cho nó biên dịch (đã phải bỏ hàng chục con trỏ void trở về bởi malloc để loại chính xác của họ). Biên soạn, nhưng không có đầu ra khi tôi chạy nó. Ý tưởng nào? – aaaidan

+0

Ồ, nó tương tự như lzz. Vì vậy, bạn có thể tiếp tục sử dụng lzz :) –

1

Bạn cũng có thể quan tâm đến chức năng "Refactor/Toggle function" của Eclipse. Nó không phải lúc nào cũng hoạt động đúng cách.

Các vấn đề liên quan