2009-10-22 43 views
20

Tôi đang sử dụng Visual Studio 2008 và tôi đã tự hỏi liệu có thể tạo tệp .cpp cho các tệp tiêu đề hay không.Tạo các tệp .cpp từ tệp .h visual studio

Vì vậy, nếu tôi có một file .h với một lớp học và chức năng, nó có thể tạo ra các tập tin mã với tất cả các chức năng gõ vào với một cơ thể trống

+0

+1 - Câu hỏi hay. Chào mừng bạn đến với Stack Overflow. – dss539

+0

Bạn là một lập trình viên, hãy viết nó! :) –

+0

@EdS. Tôi thấy bạn đến từ đâu, nhưng tại sao lại viết lại thứ gì đó đã có, làm việc và thử nghiệm. Tôi hiểu rằng điều này đã được một thời gian dài trước đây và bạn có thể đã thay đổi quan điểm của bạn ngay bây giờ;) – Vinnyq12

Trả lời

1

Bạn có thể nói Project -> Add lớp nhưng điều đó chỉ làm những thứ cơ bản. Tôi không nghĩ rằng bạn có thể làm (chưa) những gì bạn đang đề xuất nhưng nó sẽ thực sự tuyệt vời và không có lý do (mà tôi có thể nghĩ ra) tại sao bạn không thể.

0

Hãy thử của tôi AtomineerUtils bổ trợ.

Nó sẽ không thực hiện toàn bộ tiêu đề, nhưng có thể chuyển đổi khai báo tiêu đề của một phương thức thành triển khai trong tệp nguồn có liên quan. Nó thêm vào tên lớp/không gian tên theo yêu cầu, điền vào một thực thi mặc định nếu có thể (ví dụ return (NULL)) và thêm doc doc-doc Doxygen hoặc DocXml, kết hợp và đóng gói lời nhận xét từ tiêu đề làm mô tả ngắn gọn nếu có sẵn.

3

Bạn nên kiểm tra phần bổ trợ Visual Assist X cho Visual Studio. Nó có rất nhiều tính năng.

+2

Có, đặc biệt nếu bạn nhấp chuột phải vào chữ ký cho một phương thức trong một '.h' bạn có thể chọn' Refactor (VA X) 'rồi' Create Implementation'. – dukedave

0

Bạn đang tìm kiếm thứ gì đó để xử lý hàng loạt tệp tiêu đề như xây dựng trình tạo mã hay đây là điều một lần, bất cứ khi nào bạn tạo lớp mới?

Tôi có một lựa chọn khá lớn Macro tự sử dụng trong quá trình phát triển một cách thường xuyên, và sau khi đọc câu trả lời cho câu hỏi này, tôi khá hứng khởi viết một trình tạo lớp dựa trên tệp tiêu đề. Phần tốt nhất là, tôi đã thực hiện nó, chỉ cần không phải trong một hình thức Visual Studio. Tôi đã thực hiện nó trong khi viết trình tạo mã, phải tạo tất cả các cuộc gọi hàm này, và đặt Mutex chuẩn xung quanh mỗi cuộc gọi, và sau đó thực hiện cuộc gọi mặc định, và lấy bất kỳ giá trị trả về lỗi nào và tạo chuỗi LastError được lưu trữ trong lớp.

Phần xấu là, bạn có thể phát điên như bạn muốn với thứ gì đó như thế này, nhưng có vẻ như bạn sẽ hài lòng với chức năng cơ bản ... Tôi sẽ xem xét việc tạo Macro, bạn có thể tạo ToolBar Button cho, và nếu bạn nhấp vào nó trong khi một tập tin tiêu đề được nạp, nó sẽ rip trên nó, và (tạo .cpp, nếu nó không tồn tại), quét .cpp, bỏ qua bất kỳ phương thức nào đã tồn tại. Điều này cũng sẽ cho bạn khả năng thêm các hàm mới vào các lớp và sau đó trong một chuyển động tạo ra tất cả các đối tượng phương thức.

Có lẽ bạn có thể liên hệ với tôi khỏi SO và chúng tôi sẽ xem liệu hai kế hoạch của chúng tôi có đồng ý hay không. Tôi có thể thấy một nhu cầu rất lớn cho bản thân mình ... Chỉ cần FYI; cách tôi hiện đang xử lý việc này ...

Tôi tạo tệp .H, sau đó sao chép toàn bộ tiêu đề sang tệp .CPP và dán vào. Sau đó, bắt đầu hack và 'slashin' trên văn bản, loại bỏ tất cả công chúng :, riêng tư: được bảo vệ: dòng, dòng {} dòng, v.v .. Sau đó, tôi sao chép tên lớp cùng với toán tử phạm vi vào khay nhớ tạm và bắt đầu đi xuống màn hình dán nó ở phía trước của tất cả các phương thức (hàm). Sau đó, thực hiện Tìm kiếm/Thay thế trên ; với "\ r \ n {\ r \ n} \ r \ n" ... Ngoài ra, bất kỳ việc dọn dẹp nhỏ nào khác mà tôi có thể làm ...

Sử dụng phương pháp đó, tôi mất một vài điều quan trọng. Một trong số đó là Doxygen được đề cập ở trên, hoặc các loại bình luận khác (Nếu tôi đang viết các lớp API, thì điều này quan trọng hơn nếu tôi chỉ viết một số lớp cho một số thứ, mà sau đó tôi sẽ đưa hầu hết các bình luận trong Hộp hoa hoặc tốt hơn, hãy viết mã tự nhận xét.), và tôi không nhận được các giá trị trả về automagic được chèn vào, hoặc thậm chí chỉ cần ném các câu lệnh ném một số loại ngoại lệ "NotImplemented".

RENNG đã đến lúc bắt đầu viết mã lớp. :)

Được đề cập, bạn là người lập trình, vì vậy bạn có thể viết chính mình và nếu đó là kế hoạch của bạn, hãy cho tôi biết, có thể tôi có thể chia sẻ một số mã hiện có của mình có thể giúp bạn và cả hai đều có thể hưởng lợi từ kết quả.

Tôi hy vọng tôi không vi phạm bất kỳ quy tắc SO nào ở đây bằng cách đăng câu trả lời này, vì vậy nếu tôi, tôi thực sự xin lỗi và tôi rất vui khi xóa hoặc yêu cầu quản trị viên xóa bài đăng này.

Hy vọng điều này sẽ hữu ích và thậm chí có thể cung cấp cho bạn một số ý tưởng.

3

Shortcut: alt+shift+f10 (VS2015)

Tôi đã nhìn cho điều này trong hơn 10 năm, được cho biết nhiều lần rằng không có gì như thế này tồn tại, và rằng người ta cần để bằng cách nào đó sử dụng các công cụ bên ngoài để có được chức năng cơ bản này .

... Bây giờ, cuối cùng tôi đã tìm thấy điều gì đó hữu ích.

Đánh dấu tên lớp trong tệp .h của bạn và sử dụng phím tắt đó sẽ làm cho intellisense tạo các định nghĩa có liên quan (cũng tạo tệp .cpp nếu không được tạo).

Đó cũng là phím tắt có mục đích chung. tạo ra các phương thức cho bạn, nếu bạn tạo các chữ ký hàm trong tiêu đề (và làm nổi bật tên hàm). Như bạn có thể nhìn thấy từ ảnh chụp màn hình dưới đây, nó cũng cho phép bạn tự động tạo ra tất cả virtuals từ lớp cha mẹ vv

Tôi hoàn toàn không thể tin được bao nhiêu này năng suất đã bất ngờ được cải thiện (tạm biệt thủ công copy dán!). Và tôi thấy nó hoàn toàn gây sốc như thế nào tôi chưa bao giờ nhìn thấy/được tham chiếu đến điều này, ngay cả trong Stack Overflow, cho đến thời điểm này.

Tận hưởng sức mạnh mới của bạn và truyền bá thông tin!

Revolution

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