2012-02-14 1 views
6

C# 또는 Python을 C++로 전환하고 .h 및 .cpp 분리를 만나면 항상 아픔이 느껴집니다.C++ 헤더와 구현을 자동으로 분리하는 도구

그래서 제가 미리 컴파일 단계에서 헤더를 가져올 수있는 도구가 있다고 생각했습니다. (특별한 확장자를 가진 파일) .h와 .cpp로 나누었습니까?

그렇다면이 같은 원본 파일 :

class MyClass 
{ 
public: 

    void HaHaHa() 
    { 
     //some logic 
    } 
} 

그리고 그 결과는 .H 및 .CPP 파일로 다음과 같습니다

//.h 

class MyClass 
{ 
public: 

    void HaHaHa(); 
} 

// .cpp 

#include "MyClass.h" 

void MyClass::HaHaHa() 
{ 
    //some logic 
} 

일부 인터넷 검색이 도구를 사용하여 준비 나타나지 않았다 . 그러나 나는 새로운 아이디어가 아니며 그러한 도구가 존재해야한다고 확신합니다.

P. 즉, 비주얼 어시스트 X 및 VIM에는 .h 및 .cpp 분리를 덜 고통스럽게 처리 할 수있는 도구가있는 것으로 알려져 있습니다. 하지만 한 파일에 코드를 포함하고 빌드 프로세스의 일부로 자동으로 코드를 분리 할 수 ​​있는지 묻습니다.

+2

그리고 왜 h 파일에 모든 코드를 넣지 않으십니까? 느린 컴파일? –

+0

모듈이 조만간 (또는 이후에) C++이 될 것입니다. http://stackoverflow.com/questions/3596147/modules-in-c0x이 부분이 잘 해결 될 것입니다. – tauran

+2

"느린 컴파일"- 예제로. autocomplition의 천천히 파서는 더 나빠집니다. 또는 때로는 라이브러리를 작성하고 "오픈 소스"가되기를 원하지 않습니다. 일반적으로 C++은 이러한 분리를 위해 고안되었습니다. 이러한 관점에서 볼 때 이러한 도구를 사용하는 것이 훨씬 명확한 해결책입니다. – MajesticRa

답변

4

이 도구를 사용하면 도움이 될 수 있습니다 : http://www.lazycplusplus.com/

+0

고마워요! 그게 정말 내가 묻고있는 것처럼 보입니다! 이제 동작 확인해볼 시간입니다 ... – MajesticRa

+0

파서가 수작업으로 처리되었다는 것을 감안할 때 실제 C++ 구문 (템플릿, 함수 유형)을 구문 분석 할 수있는 능력에 회의적입니다. –

+0

시도해 보셨습니까? – vulkanino

2

을 당신이 거꾸로 대해려고 생각 : 당신이 코드를 작성하기 전에, 구현하지 않고, 헤더 파일을 작성합니다. 은 헤더 파일을 읽고 구현을위한 개요 코드를 생성하는 도구입니다. 네임 스페이스, 중첩 클래스 및 등을 사용하면 래퍼 만 매우 장황 할 수 있습니다. 그러나 가장 가까운 필자는 을 Rational Rose로, 가장 많이 주석 된 ULM 다이어그램 인 으로 시작하여 구현의 머리말과 상용구를 생성합니다. 아주 좋은 도구입니다. — 사용 가능한 경우 언제든지 —을 사용하지만 가정용 사용자에게는 약간 비싸지 만 작은 기업의 경우에도 사용할 수 있습니다.

0

전체 토마토가 Visual Assist X 인 Windows의 경우 that sort of thing입니다. 내가 생각하지는 않지만 자동화는 안된다.

+0

@Majestic - VAX가 의미하는 바가 가장 분명하지 않습니다. http://en.wikipedia.org/wiki/VAX –

관련 문제